¡¾Â©¶´Í¨¸æ¡¿Linux Netfilter»º³åÇøÒç³ö©¶´£¨CVE-2022-34918£©
Ðû²¼Ê±¼ä 2022-07-070x00 ©¶´¸ÅÊö
CVE ID | CVE-2022-34918 | ·¢ÏÖʱ¼ä | 2022-07-06 |
Àà ÐÍ | »º³åÇøÒç³ö | µÈ ¼¶ | ¸ßΣ |
Ô¶³ÌÀûÓà | ·ñ | Ó°Ï췶Χ | |
¹¥»÷ÅÓ´ó¶È | Óû§½»»¥ | ||
PoC/EXP | ÒѹûÈ» | ÔÚÒ°ÀûÓà |
0x01 ©¶´ÏêÇé
NetfilterÊÇLinux 2.4.xÒýÈëµÄÒ»¸ö×Óϵͳ£¬Ëü×÷ΪLinuxµ×²ã°ü´¦Öÿò¼Ü£¬ÌṩһÕûÌ×µÄhookº¯ÊýµÄ¹ÜÀí»úÖÆ£¬¿ÉÒÔÓÃÓÚ¶ÔÊý¾Ý°ü½øÐйýÂË¡¢Ð޸ġ¢µØÖ·×ª»»(SNAT/DNAT)µÈ´¦Öá£
½üÈÕ£¬Linux Netfilter×ÓϵͳÖб»Åû¶´æÔÚÒ»¸ö»º³åÇøÒç³ö©¶´£¨CVE-2022-34918£©£¬Ó°ÏìÁËLinuxÄں˶à¸ö°æ±¾£¬Ä¿Ç°¸Ã©¶´µÄϸ½Ú¼°PoCÒѹûÈ»¡£
nft_set_elem_initº¯Êý£¨/net/netfilter/nf_tables_api.c)ÖÐÓÉÓÚ¶ÔÓû§ÊäÈëµÄÈõ¼ì²éµ¼Ö»º³åÇøÒç³ö£¬ÀÖ³ÉÀûÓôË©¶´¿ÉʵÏÖµ±µØÈ¨ÏÞÌáÉý£¨LPE£©Îªroot¡£µ«ÒªÀûÓôË©¶´£¬ÐèÒª»ñµÃ·ÇÌØÈ¨Óû§ÃüÃû¿Õ¼ä£¬ÒÔ»ñµÃ CAP_NET_ADMIN ȨÏÞ¡£
Ó°Ï췶Χ
5.8 <= LinuxÄÚºË <= 5.18.9
0x02 Äþ¾²½¨Òé
Ŀǰ´Ë©¶´µÄ²¹¶¡ÒѾÐû²¼£¬ÊÜÓ°ÏìÓû§¿É¼°Ê±ÐÞ¸´¡£
²¹¶¡ÏÂÔØÁ´½Ó£º
https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/commit/?id=7e6bc1f6cabcd30aba0b11219d8e01b952eacbb6
ÏÂÔØÁ´½Ó£º
https://kernel.org/
0x03 ²Î¿¼Á´½Ó
https://www.openwall.com/lists/oss-security/2022/07/05/1
https://lore.kernel.org/netfilter-devel/cd9428b6-7ffb-dd22-d949-d86f4869f452@randorisec.fr/T/#u
0x04 °æ±¾ÐÅÏ¢
°æ±¾ | ÈÕÆÚ | ÐÞ¸ÄÄÚÈÝ |
V1.0 | 2022-07-07 | Ê×´ÎÐû²¼ |
0x05 ¸½Â¼
¶«Éƽ̨¼ò½é
¶«Éƽ̨½¨Á¢ÓÚ1996Ä꣬ÊÇÓÉÁôÃÀ²©Ê¿ÑÏÍû¼ÑŮʿ´´½¨µÄ¡¢ÓµÓÐÍêÈ«×ÔÖ÷֪ʶ²úȨµÄÐÅÏ¢Äþ¾²¸ß¿Æ¼¼ÆóÒµ¡£ÊǹúÄÚ×î¾ßʵÁ¦µÄÐÅÏ¢Äþ¾²²úÎï¡¢Äþ¾²·þÎñ½â¾ö·½°¸µÄÁ캽ÆóÒµÖ®Ò»¡£
¹«Ë¾×ܲ¿Î»ÓÚ±±¾©ÊÐÖйشåÈí¼þÔ°¶«Éƽ̨´óÏ㬹«Ë¾Ô±¹¤½ü4000ÈË£¬Ñз¢ÍŶÓ1200ÓàÈË, ¼¼Êõ·þÎñÍŶÓ1300ÓàÈË¡£ÔÚÈ«¹ú¸÷Ê¡¡¢ÊС¢×ÔÖÎÇøÉèÁ¢·ÖÖ§»ú¹¹ÁùÊ®¶à¸ö£¬ÓµÓÐÁýÕÖÈ«¹úµÄÏúÊÛÌåϵ¡¢ÇþµÀÌåϵºÍ¼¼ÊõÖ§³ÖÌåϵ¡£¹«Ë¾ÓÚ2010Äê6ÔÂ23ÈÕÔÚÉîÛÚÖÐС°å¹ÒÅÆÉÏÊС££¨¹ÉƱ´úÂ룺002439£©
¶àÄêÀ´£¬¶«Éƽ̨ÖÂÁ¦ÓÚÌṩ¾ßÓйú¼Ê¾ºÕùÁ¦µÄ×ÔÖ÷´´ÐµÄÄþ¾²²úÎïºÍ×î¼Ñʵ¼ù·þÎñ£¬×ÊÖú¿Í»§È«ÃæÌáÉýÆäIT»ù´¡ÉèÊ©µÄÄþ¾²ÐÔºÍÉú²úЧÄÜ£¬Îª´òÔìºÍÌáÉý¹ú¼Ê»¯µÄÃñ×åÐÅÏ¢Äþ¾²¹¤ÒµÁì¾üÆ·ÅÆ¶ø²»Ð¸Å¬Á¦¡£
¹ØÓÚ¶«Éƽ̨
¶«Éƽ̨Äþ¾²Ó¦¼±ÏìÓ¦ÖÐÐÄÖ÷ÒªÕë¶ÔÖØÒªÄþ¾²Â©¶´µÄÔ¤¾¯¡¢¸ú×ٺͷÖÏíÈ«Çò×îеÄÍþвÇ鱨ºÍÄþ¾²³ÂËß¡£
¹Ø×¢ÒÔϹ«Öںţ¬»ñȡȫÇò×îÐÂÄþ¾²×ÊѶ£º