¡¾·ì϶¹«¸æ¡¿PostgreSQL JDBC Driver SQL×¢Èë·ì϶£¨CVE-2022-31197£©

°ä²¼¹¦·ò 2022-08-24

0x00 ·ì϶¸ÅÊö

CVE   ID

CVE-2022-31197

·¢ÏÖ¹¦·ò

2022-08-23

Àà    ÐÍ

SQL×¢Èë

µÈ    ¼¶

ÖÐΣ

Ô¶³ÌÀûÓÃ

ÊÇ

Ó°ÏìÁìÓò


¹¥»÷¸´ÔÓ¶È

¸ß

Óû§½»»¥

ÊÇ

PoC/EXP


ÔÚÒ°ÀûÓÃ


 

0x01 ·ì϶ÏêÇé

PostgreSQL JDBC Driver£¨¼ò³Æ PGJDBC£©ÊÇÒ»¸öÓà Pure Java£¨Type 4£©±àдµÄ¿ªÔ´JDBCÇý¶¯·¨Ê½ £¬ÔÊÐíJava ·¨Ê½Ê¹Óó߶ȵġ¢¶ÀÁ¢ÓÚÊý¾Ý¿âµÄJava´úÂëÏνӵ½ PostgreSQL Êý¾Ý¿â ¡£

8ÔÂ3ÈÕ £¬PGJDBC±»Åû¶´æÔÚÒ»¸öSQL×¢Èë·ì϶£¨CVE-2022-31197£© £¬ÆäCVSSÆÀ·ÖΪ5.9 ¡£

ÓÉÓÚjava.sql.ResultRow.refreshRow()²½ÖèµÄPGJDBCʵÏÖûÓжÔÁÐÃû½øÐÐתÒå £¬Òò¶øµ±¶ñÒâÁÐÃûÖÐÔ̺¬Óï¾äÖÕÖ¹·û £¬Èç¡°;¡±Ê±ÔÚijЩÇé¿öÏ¿ÉÄܵ¼ÖÂSQL ×¢Èë £¬³É¹¦ÀûÓô˷ì϶½«¿ÉÄÜÒÔÀûÓ÷¨Ê½µÄJDBCÓû§Éí·ÝÖ´ÐÐSQL ºÅÁî ¡£

 

Ó°ÏìÁìÓò

PostgreSQL JDBC Driver < 42.2.26

42.3.0 <= PostgreSQL JDBC Driver < 42.4.1

×¢£º²»Å²ÓÃResultSet.refreshRow()²½ÖèµÄÓû§ÀûÓ÷¨Ê½²»ÊÜÓ°Ïì ¡£


0x02 °²È«½¨Òé

Ŀǰ´Ë·ì϶ÒѾ­½¨¸´ £¬ÊÜÓ°ÏìÓû§¿ÉÉý¼¶µ½PostgreSQL JDBC Driver °æ±¾42.2.26¡¢42.4.1»ò¸ü¸ß°æ±¾ ¡£

ÏÂÔØÁ´½Ó£º

https://jdbc.postgresql.org/download.html

 

0x03 ²Î¿¼Á´½Ó

https://github.com/pgjdbc/pgjdbc/security/advisories/GHSA-r38f-c4h4-hqq2

https://nvd.nist.gov/vuln/detail/CVE-2022-31197

 

0x04 °æ±¾ÐÅÏ¢

°æ±¾

ÈÕÆÚ

Åú¸ÄÄÚÈÝ

V1.0

2022-08-24

³õ´Î°ä²¼

 

0x05 ¸½Â¼

±¦ÔËÀ³¹Ù·½ÍøÕ¾¼ò½é

±¦ÔËÀ³¹Ù·½ÍøÕ¾³ÉÁ¢ÓÚ1996Äê £¬ÊÇÓÉÁôÃÀ²©Ê¿ÑÏÍû¼ÑŮʿ´´½¨µÄ¡¢Õ¼ÓÐÆëÈ«×ÔÖ÷֪ʶ²úȨµÄÐÅÏ¢°²È«¸ß¿Æ¼¼ÆóÒµ ¡£ÊǹúÄÚ×î¾ßʵÁ¦µÄÐÅÏ¢°²È«²úÆ·¡¢°²È«·þÎñ½â¾ö¹æ»®µÄÁ캽ÆóÒµÖ®Ò» ¡£

¹«Ë¾×ܲ¿Î»ÓÚ±±¾©ÊÐÖйشåÈí¼þÔ°±¦ÔËÀ³¹Ù·½ÍøÕ¾´óÏà £¬¹«Ë¾Ô±¹¤½ü4000ÈË £¬Ñз¢ÍŶÓ1200ÓàÈË, ¼¼Êõ·þÎñÍŶÓ1300ÓàÈË ¡£ÔÚÈ«¹ú¸÷Ê¡¡¢ÊÓ×¢×ÔÖÎÇøÉèÁ¢·ÖÖ§»ú¹¹ÁùÊ®¶à¸ö £¬Õ¼Óи²¸ÇÈ«¹úµÄÏúÊÛϵͳ¡¢Çþ·ϵͳºÍ¼¼ÊõÖ§³Öϵͳ ¡£¹«Ë¾ÓÚ2010Äê6ÔÂ23ÈÕÔÚÀö½­ÖÐÓ×°å¹ÒÅÆÉÏÊÐ ¡££¨¹ÉƱ´úÂ룺002439£©

¶àÄêÀ´ £¬±¦ÔËÀ³¹Ù·½ÍøÕ¾ÖÂÁ¦ÓÚÌṩӵÓйú¼Ê¾ºÕùÁ¦µÄ×ÔÖ÷´´Ðµİ²È«²úÆ·ºÍ×î¼Ñʵ¼Ê·þÎñ £¬Ô®ÊÖ¿Í»§È«ÃæÌáÉýÆäIT»ù´¡ÉèÊ©µÄ°²È«ÐԺͳö²úЧÁ¦ £¬Îª´òÔìºÍÌáÉý¹ú¼Ê»¯µÄÃñ×åÐÅÏ¢°²È«²úÒµÁì¾üÆ·ÅÆ¶ø²»Ð¸ÖÂÁ¦ ¡£

 

¹ØÓÚ±¦ÔËÀ³¹Ù·½ÍøÕ¾

±¦ÔËÀ³¹Ù·½ÍøÕ¾°²È«Ó¦¼±ÏìÓ¦ÖÐÐÄÖØÒªÕë¶Ô³ÁÒª°²È«·ì϶µÄÔ¤¾¯¡¢¸ú×ٺͷÖÏíÈ«Çò×îеÄÍþвµý±¨ºÍ°²È«»ã±¨ ¡£

¹Ø×¢ÒÔϹ«¼ÒºÅ £¬»ñȡȫÇò×îа²È«×ÊѶ£º

image.png