Cloudanix VulnDB

CVE-2023-6779

High · 8.2

CVSS

8.2

EPSS

3.2%

Published

Jan 31, 2024

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

A logging flaw in widely used system software can let attackers crash applications by sending an extremely large message, causing service outages until fixed.

Exploit Available
Exploitation
Remote Unauthenticated
Attacker needs
None
Complexity
Moderate
Impact
Denial Of Service
Component
Library
Class
Memory Corruption
Remediation
Upgrade
Effort
Medium
Patch risk
Medium

What it actually does

Off-by-one heap buffer overflow in __vsyslog_internal when syslog/vsyslog receive messages exceeding INT_MAX bytes, causing incorrect size calculation and subsequent crash.

Why it matters to the business

Applications relying on glibc logging functions can be forced into denial-of-service crashes, interrupting services and requiring restarts, with elevated urgency for organizations using glibc 2.37+ given public exploit availability.

How an attack unfolds

An attacker crafts a syslog message larger than INT_MAX bytes and triggers the vulnerable logging path, causing the off-by-one miscalculation that corrupts heap metadata and terminates the process.

How to fix it

Upgrade glibc to the commit ef321e23c20eebc6d6fb4044425c00e6df27b05f or later; for affected 1panel deployments apply commit 16a35141dda0f5016da378cdc26e8ced4868ec4a. Rebuild and restart dependent applications after the library update.

How to confirm the fix worked

Confirm glibc version is at or beyond the fixed commit; test logging calls with messages sized at or above INT_MAX to verify absence of crash behavior.

Typical attack path

  1. Identify services or libraries calling syslog/vsyslog with untrusted input
  2. Craft and deliver a message exceeding INT_MAX bytes to the logging function
  3. Trigger the overflow to induce heap corruption and application crash

How to detect it

Review system and application logs for abrupt terminations around syslog/vsyslog calls; correlate with large message sizes in audit or debug logs where available.

What your security team should do

  • Immediately upgrade glibc to the fixed commit across all affected systems
  • Scan for and update any downstream packages or containers pulling in vulnerable glibc versions
  • Monitor application logs and crash reports for syslog-related terminations as an interim detection measure

The record

An off-by-one heap-based buffer overflow was found in the __vsyslog_internal function of the glibc library. This function is called by the syslog and vsyslog functions. This issue occurs when these functions are called with a message bigger than INT_MAX bytes, leading to an incorrect calculation of the buffer size to store the message, resulting in an application crash. This issue affects glibc 2.37 and newer.

Affected packages

Ecosystem Package Introduced Fixed
Chainguard glibc 0 2.38-r11
Chainguard glibc-dev 0 2.38-r11
Chainguard glibc-iconv 0 2.38-r11
Chainguard glibc-locale-aa 0 2.38-r11
Chainguard glibc-locale-af 0 2.38-r11
Chainguard glibc-locale-agr 0 2.38-r11
Chainguard glibc-locale-ak 0 2.38-r11
Chainguard glibc-locale-am 0 2.38-r11
Chainguard glibc-locale-an 0 2.38-r11
Chainguard glibc-locale-anp 0 2.38-r11
Chainguard glibc-locale-ar 0 2.38-r11
Chainguard glibc-locale-as 0 2.38-r11
Chainguard glibc-locale-ast 0 2.38-r11
Chainguard glibc-locale-ayc 0 2.38-r11
Chainguard glibc-locale-az 0 2.38-r11
Chainguard glibc-locale-be 0 2.38-r11
Chainguard glibc-locale-bem 0 2.38-r11
Chainguard glibc-locale-ber 0 2.38-r11
Chainguard glibc-locale-bg 0 2.38-r11
Chainguard glibc-locale-bhb 0 2.38-r11
Chainguard glibc-locale-bho 0 2.38-r11
Chainguard glibc-locale-bi 0 2.38-r11
Chainguard glibc-locale-bn 0 2.38-r11
Chainguard glibc-locale-bo 0 2.38-r11
Chainguard glibc-locale-br 0 2.38-r11
Chainguard glibc-locale-brx 0 2.38-r11
Chainguard glibc-locale-bs 0 2.38-r11
Chainguard glibc-locale-byn 0 2.38-r11
Chainguard glibc-locale-ca 0 2.38-r11
Chainguard glibc-locale-ce 0 2.38-r11
Chainguard glibc-locale-chr 0 2.38-r11
Chainguard glibc-locale-ckb 0 2.38-r11
Chainguard glibc-locale-cmn 0 2.38-r11
Chainguard glibc-locale-crh 0 2.38-r11
Chainguard glibc-locale-cs 0 2.38-r11
Chainguard glibc-locale-csb 0 2.38-r11
Chainguard glibc-locale-cv 0 2.38-r11
Chainguard glibc-locale-cy 0 2.38-r11
Chainguard glibc-locale-da 0 2.38-r11
Chainguard glibc-locale-de 0 2.38-r11
Chainguard glibc-locale-doi 0 2.38-r11
Chainguard glibc-locale-dsb 0 2.38-r11
Chainguard glibc-locale-dv 0 2.38-r11
Chainguard glibc-locale-dz 0 2.38-r11
Chainguard glibc-locale-el 0 2.38-r11
Chainguard glibc-locale-en 0 2.38-r11
Chainguard glibc-locale-eo 0 2.38-r11
Chainguard glibc-locale-es 0 2.38-r11
Chainguard glibc-locale-et 0 2.38-r11
Chainguard glibc-locale-eu 0 2.38-r11
Chainguard glibc-locale-extra 0 2.38-r11
Chainguard glibc-locale-fa 0 2.38-r11
Chainguard glibc-locale-ff 0 2.38-r11
Chainguard glibc-locale-fi 0 2.38-r11
Chainguard glibc-locale-fil 0 2.38-r11
Chainguard glibc-locale-fo 0 2.38-r11
Chainguard glibc-locale-fr 0 2.38-r11
Chainguard glibc-locale-fur 0 2.38-r11
Chainguard glibc-locale-fy 0 2.38-r11
Chainguard glibc-locale-ga 0 2.38-r11
Chainguard glibc-locale-gbm 0 2.38-r11
Chainguard glibc-locale-gd 0 2.38-r11
Chainguard glibc-locale-gez 0 2.38-r11
Chainguard glibc-locale-gl 0 2.38-r11
Chainguard glibc-locale-gu 0 2.38-r11
Chainguard glibc-locale-gv 0 2.38-r11
Chainguard glibc-locale-ha 0 2.38-r11
Chainguard glibc-locale-hak 0 2.38-r11
Chainguard glibc-locale-he 0 2.38-r11
Chainguard glibc-locale-hi 0 2.38-r11
Chainguard glibc-locale-hif 0 2.38-r11
Chainguard glibc-locale-hne 0 2.38-r11
Chainguard glibc-locale-hr 0 2.38-r11
Chainguard glibc-locale-hsb 0 2.38-r11
Chainguard glibc-locale-ht 0 2.38-r11
Chainguard glibc-locale-hu 0 2.38-r11
Chainguard glibc-locale-hy 0 2.38-r11
Chainguard glibc-locale-ia 0 2.38-r11
Chainguard glibc-locale-id 0 2.38-r11
Chainguard glibc-locale-ig 0 2.38-r11
Chainguard glibc-locale-ik 0 2.38-r11
Chainguard glibc-locale-is 0 2.38-r11
Chainguard glibc-locale-it 0 2.38-r11
Chainguard glibc-locale-iu 0 2.38-r11
Chainguard glibc-locale-ja 0 2.38-r11
Chainguard glibc-locale-ka 0 2.38-r11
Chainguard glibc-locale-kab 0 2.38-r11
Chainguard glibc-locale-kk 0 2.38-r11
Chainguard glibc-locale-kl 0 2.38-r11
Chainguard glibc-locale-km 0 2.38-r11
Chainguard glibc-locale-kn 0 2.38-r11
Chainguard glibc-locale-ko 0 2.38-r11
Chainguard glibc-locale-kok 0 2.38-r11
Chainguard glibc-locale-ks 0 2.38-r11
Chainguard glibc-locale-ku 0 2.38-r11
Chainguard glibc-locale-kv 0 2.38-r11
Chainguard glibc-locale-kw 0 2.38-r11
Chainguard glibc-locale-ky 0 2.38-r11
Chainguard glibc-locale-lb 0 2.38-r11
Chainguard glibc-locale-lg 0 2.38-r11
Chainguard glibc-locale-li 0 2.38-r11
Chainguard glibc-locale-lij 0 2.38-r11
Chainguard glibc-locale-ln 0 2.38-r11
Chainguard glibc-locale-lo 0 2.38-r11
Chainguard glibc-locale-lt 0 2.38-r11
Chainguard glibc-locale-ltg 0 2.38-r11
Chainguard glibc-locale-lv 0 2.38-r11
Chainguard glibc-locale-lzh 0 2.38-r11
Chainguard glibc-locale-mag 0 2.38-r11
Chainguard glibc-locale-mai 0 2.38-r11
Chainguard glibc-locale-mdf 0 2.38-r11
Chainguard glibc-locale-mfe 0 2.38-r11
Chainguard glibc-locale-mg 0 2.38-r11
Chainguard glibc-locale-mhr 0 2.38-r11
Chainguard glibc-locale-mi 0 2.38-r11
Chainguard glibc-locale-miq 0 2.38-r11
Chainguard glibc-locale-mjw 0 2.38-r11
Chainguard glibc-locale-mk 0 2.38-r11
Chainguard glibc-locale-ml 0 2.38-r11
Chainguard glibc-locale-mn 0 2.38-r11
Chainguard glibc-locale-mni 0 2.38-r11
Chainguard glibc-locale-mnw 0 2.38-r11
Chainguard glibc-locale-mr 0 2.38-r11
Chainguard glibc-locale-ms 0 2.38-r11
Chainguard glibc-locale-mt 0 2.38-r11
Chainguard glibc-locale-my 0 2.38-r11
Chainguard glibc-locale-nan 0 2.38-r11
Chainguard glibc-locale-nb 0 2.38-r11
Chainguard glibc-locale-nds 0 2.38-r11
Chainguard glibc-locale-ne 0 2.38-r11
Chainguard glibc-locale-nhn 0 2.38-r11
Chainguard glibc-locale-niu 0 2.38-r11
Chainguard glibc-locale-nl 0 2.38-r11
Chainguard glibc-locale-nn 0 2.38-r11
Chainguard glibc-locale-nr 0 2.38-r11
Chainguard glibc-locale-nso 0 2.38-r11
Chainguard glibc-locale-oc 0 2.38-r11
Chainguard glibc-locale-om 0 2.38-r11
Chainguard glibc-locale-or 0 2.38-r11
Chainguard glibc-locale-os 0 2.38-r11
Chainguard glibc-locale-pa 0 2.38-r11
Chainguard glibc-locale-pap 0 2.38-r11
Chainguard glibc-locale-pl 0 2.38-r11
Chainguard glibc-locale-posix 0 2.38-r11
Chainguard glibc-locale-ps 0 2.38-r11
Chainguard glibc-locale-pt 0 2.38-r11
Chainguard glibc-locale-quz 0 2.38-r11
Chainguard glibc-locale-raj 0 2.38-r11
Chainguard glibc-locale-rif 0 2.38-r11
Chainguard glibc-locale-ro 0 2.38-r11
Chainguard glibc-locale-ru 0 2.38-r11
Chainguard glibc-locale-rw 0 2.38-r11
Chainguard glibc-locale-sa 0 2.38-r11
Chainguard glibc-locale-sah 0 2.38-r11
Chainguard glibc-locale-sat 0 2.38-r11
Chainguard glibc-locale-sc 0 2.38-r11
Chainguard glibc-locale-scn 0 2.38-r11
Chainguard glibc-locale-sd 0 2.38-r11
Chainguard glibc-locale-se 0 2.38-r11
Chainguard glibc-locale-sgs 0 2.38-r11
Chainguard glibc-locale-shn 0 2.38-r11
Chainguard glibc-locale-shs 0 2.38-r11
Chainguard glibc-locale-si 0 2.38-r11
Chainguard glibc-locale-sid 0 2.38-r11
Chainguard glibc-locale-sk 0 2.38-r11
Chainguard glibc-locale-sl 0 2.38-r11
Chainguard glibc-locale-sm 0 2.38-r11
Chainguard glibc-locale-so 0 2.38-r11
Chainguard glibc-locale-sq 0 2.38-r11
Chainguard glibc-locale-sr 0 2.38-r11
Chainguard glibc-locale-ss 0 2.38-r11
Chainguard glibc-locale-ssy 0 2.38-r11
Chainguard glibc-locale-st 0 2.38-r11
Chainguard glibc-locale-su 0 2.38-r11
Chainguard glibc-locale-sv 0 2.38-r11
Chainguard glibc-locale-sw 0 2.38-r11
Chainguard glibc-locale-syr 0 2.38-r11
Chainguard glibc-locale-szl 0 2.38-r11
Chainguard glibc-locale-ta 0 2.38-r11
Chainguard glibc-locale-tcy 0 2.38-r11
Chainguard glibc-locale-te 0 2.38-r11
Chainguard glibc-locale-tg 0 2.38-r11
Chainguard glibc-locale-th 0 2.38-r11
Chainguard glibc-locale-the 0 2.38-r11
Chainguard glibc-locale-ti 0 2.38-r11
Chainguard glibc-locale-tig 0 2.38-r11
Chainguard glibc-locale-tk 0 2.38-r11
Chainguard glibc-locale-tl 0 2.38-r11
Chainguard glibc-locale-tn 0 2.38-r11
Chainguard glibc-locale-to 0 2.38-r11
Chainguard glibc-locale-tok 0 2.38-r11
Chainguard glibc-locale-tpi 0 2.38-r11
Chainguard glibc-locale-tr 0 2.38-r11
Chainguard glibc-locale-ts 0 2.38-r11
Chainguard glibc-locale-tt 0 2.38-r11
Chainguard glibc-locale-ug 0 2.38-r11
Chainguard glibc-locale-uk 0 2.38-r11
Chainguard glibc-locale-unm 0 2.38-r11
Chainguard glibc-locale-ur 0 2.38-r11
Chainguard glibc-locale-uz 0 2.38-r11

Related vulnerabilities