¡¾Â©¶´Í¨¸æ¡¿CactiÃüÁî×¢Èë©¶´£¨CVE-2022-46169£©
Ðû²¼Ê±¼ä 2022-12-070x00 ©¶´¸ÅÊö
CVE ID | CVE-2022-46169 | ·¢ÏÖʱ¼ä | 2022-12-06 |
Àà ÐÍ | ÃüÁî×¢Èë | µÈ ¼¶ | ÑÏÖØ |
Ô¶³ÌÀûÓà | ÊÇ | Ó°Ï췶Χ | |
¹¥»÷ÅÓ´ó¶È | µÍ | Óû§½»»¥ | ÎÞ |
PoC/EXP | ÔÚÒ°ÀûÓÃ |
0x01 ©¶´ÏêÇé
Cacti ÊÇÒ»¸ö¿ªÔ´ÏîÄ¿£¬¿ÉΪÓû§Ìṩһ¸öÇ¿´óÇÒ¿ÉÀ©Õ¹µÄ²Ù×÷¼à¿ØºÍ¹ÊÕϹÜÀí¿ò¼Ü¡£
12ÔÂ6ÈÕ£¬CactiÏîÄ¿Ðû²¼Äþ¾²Í¨¸æ£¬ÐÞ¸´ÁËCactiÖеÄÒ»¸öÃüÁî×¢Èë©¶´£¨CVE-2022-46169£©£¬¸Ã©¶´µÄCVSSv3ÆÀ·ÖΪ9.8£¬Ä¿Ç°Â©¶´Ï¸½ÚÒѹûÈ»¡£
CVE-2022-46169©¶´Ô´ÓÚCacti v1.2.22°æ±¾ÖеÄremote_agent.phpÎļþ£¬Èç¹ûÅäÖÃÁËactionÀàÐÍΪPOLLER_ACTION_SCRIPT_PHPµÄpoller_item£¬Ôòproc_openº¯ÊýÓÃÓÚÖ´ÐÐPHP½Å±¾£¬¿Éͨ¹ý²ÎÊý$poller_idͨ±¨ÈÎÒâ×Ö·û´®£¬µ¼ÖÂÃüÁî×¢Èë©¶´¡£ÀÖ³ÉÀûÓøÃ©¶´¿ÉÄܵ¼ÖÂδ¾Éí·ÝÑéÖ¤µÄÓû§ÔÚÔËÐÐ Cacti µÄ·þÎñÆ÷ÉÏÖ´ÐÐÈÎÒâÃüÁî¡£
Ó°Ï췶Χ
Cacti °æ±¾ v1.2.22
0x02 Äþ¾²½¨Òé
Ŀǰ¸Ã©¶´ÒѾÐÞ¸´£¬ÊÜÓ°ÏìÓû§¿ÉÉý¼¶µ½Cacti °æ±¾1.2.23»ò1.3.0¡£
ÏÂÔØÁ´½Ó£º
https://github.com/Cacti/cacti/tags
×¢£ºCactiÒÑÐû²¼¸Ã©¶´µÄ²¹¶¡£¬µ«²¹¶¡¸üа汾1.2.23ºÍ1.3.0ĿǰÔÝδÐû²¼£¬Ïà¹Ø²¹¶¡Á´½Ó¼°Â©¶´Ï¸½ÚÏê¼û¹Ù·½Í¨¸æ£º
https://github.com/Cacti/cacti/security/advisories/GHSA-6p93-p743-35gf
»º½â´ëÊ©£º
1.ͨ¹ý²»ÔÊÐíʹlib/functions.php ÎļþÖÐµÄ get_client_addrº¯Êý·µ»ØÈÎÒâIPµØÖ·À´·ÀÖ¹ÊÚÈ¨ÈÆ¹ý£¬Õâ¿ÉÒÔͨ¹ý²»×ñÊØHTTP_¡$_SERVER±äÁ¿À´ÊµÏÖ¡£Èç¹û³öÓÚ¼æÈÝÐÔÔÒòÓ¦±£ÁôÕâЩ£¬ÖÁÉÙÓ¦¸Ã·ÀֹαÔìÔËÐÐ Cacti µÄ·þÎñÆ÷µÄ IP µØÖ·¡£
2.ͨ¹ý¸ü¸Äremote_agent.phpÎļþÀ´·ÀÖ¹ÃüÁî×¢È룬¼ìË÷$poller_id²ÎÊýʱʹÓÃget_filter_request_varº¯ÊýÈ¡´úget_nfilter_request_var£º
function poll_for_data() {
// ...
$poller_id = get_filter_request_var('poller_id');
// ...
3.ÔÚ½«²ÎÊý$poller_idͨ±¨¸øproc_openº¯Êý֮ǰ£¬Ó¦Ê¹ÓÃescapeshellarg½øÐÐתÒ壺
function poll_for_data() {
// ...
$cactiphp = proc_open(read_config_option('path_php_binary') . ' -q ' . $config['base_path'] . '/script_server.php realtime ' . escapeshellarg($poller_id), $cactides, $pipes);
// ...
0x03 ²Î¿¼Á´½Ó
https://github.com/Cacti/cacti/security/advisories/GHSA-6p93-p743-35gf
https://github.com/Cacti/cacti
0x04 °æ±¾ÐÅÏ¢
°æ±¾ | ÈÕÆÚ | ÐÞ¸ÄÄÚÈÝ |
V1.0 | 2022-12-07 | Ê×´ÎÐû²¼ |
0x05 ¸½Â¼
¶¶È¦Îª¶Ä¶øÉú¼ò½é
¶¶È¦Îª¶Ä¶øÉú½¨Á¢ÓÚ1996Ä꣬ÊÇÓÉÁôÃÀ²©Ê¿ÑÏÍû¼ÑŮʿ´´½¨µÄ¡¢ÓµÓÐÍêÈ«×ÔÖ÷֪ʶ²úȨµÄÐÅÏ¢Äþ¾²¸ß¿Æ¼¼ÆóÒµ¡£ÊǹúÄÚ×î¾ßʵÁ¦µÄÐÅÏ¢Äþ¾²²úÎï¡¢Äþ¾²·þÎñ½â¾ö·½°¸µÄÁ캽ÆóÒµÖ®Ò»¡£
¹«Ë¾×ܲ¿Î»ÓÚ±±¾©ÊÐÖйشåÈí¼þÔ°¶¶È¦Îª¶Ä¶øÉú´óÏ㬹«Ë¾Ô±¹¤6000ÓàÈË£¬Ñз¢ÍŶÓ1200ÓàÈË, ¼¼Êõ·þÎñÍŶÓ1300ÓàÈË¡£ÔÚÈ«¹ú¸÷Ê¡¡¢ÊС¢×ÔÖÎÇøÉèÁ¢·ÖÖ§»ú¹¹ÁùÊ®¶à¸ö£¬ÓµÓÐÁýÕÖÈ«¹úµÄÏúÊÛÌåϵ¡¢ÇþµÀÌåϵºÍ¼¼ÊõÖ§³ÖÌåϵ¡£¹«Ë¾ÓÚ2010Äê6ÔÂ23ÈÕÔÚÉîÛÚÖÐС°å¹ÒÅÆÉÏÊС££¨¹ÉƱ´úÂ룺002439£©
¶àÄêÀ´£¬¶¶È¦Îª¶Ä¶øÉúÖÂÁ¦ÓÚÌṩ¾ßÓйú¼Ê¾ºÕùÁ¦µÄ×ÔÖ÷´´ÐµÄÄþ¾²²úÎïºÍ×î¼Ñʵ¼ù·þÎñ£¬×ÊÖú¿Í»§È«ÃæÌáÉýÆäIT»ù´¡ÉèÊ©µÄÄþ¾²ÐÔºÍÉú²úЧÄÜ£¬Îª´òÔìºÍÌáÉý¹ú¼Ê»¯µÄÃñ×åÐÅÏ¢Äþ¾²¹¤ÒµÁì¾üÆ·ÅÆ¶ø²»Ð¸Å¬Á¦¡£
¹ØÓÚ¶¶È¦Îª¶Ä¶øÉú
¶¶È¦Îª¶Ä¶øÉúÄþ¾²Ó¦¼±ÏìÓ¦ÖÐÐÄÖ÷ÒªÕë¶ÔÖØÒªÄþ¾²Â©¶´µÄÔ¤¾¯¡¢¸ú×ٺͷÖÏíÈ«Çò×îеÄÍþвÇ鱨ºÍÄþ¾²³ÂËß¡£
¹Ø×¢ÒÔϹ«Öںţ¬»ñȡȫÇò×îÐÂÄþ¾²×ÊѶ£º