CVE-2023-6779
High · 8.2CVSS
8.2
EPSS
3.2%
Published
Jan 31, 2024
CISA due date
—
Cloudanix analysis
A logging flaw in widely used system software can let attackers crash applications by sending an extremely large message, causing service outages until fixed.
- 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
- Identify services or libraries calling syslog/vsyslog with untrusted input
- Craft and deliver a message exceeding INT_MAX bytes to the logging function
- 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
- CVE-2026-4437 Calling gethostbyaddr or gethostbyaddr_r with a configured nsswitch.conf that specifies… Also affects glibc
- CVE-2026-4438 Calling gethostbyaddr or gethostbyaddr_r with a configured nsswitch.conf that specifies… Also affects glibc
- CVE-2025-15281 Calling wordexp with WRDE_REUSE in conjunction with WRDE_APPEND in the GNU C Library… Also affects glibc
- CVE-2023-6246 A heap-based buffer overflow was found in the __vsyslog_internal function of the glibc… Also affects glibc
- CVE-2023-6780 An integer overflow was found in the __vsyslog_internal function of the glibc library. Also affects glibc
- CVE-2026-111497 A buffer overflow vulnerability in the Brotli decoder (c/dec/decode.c) in Google Brotli… CWE-787
- CVE-2026-112397 Pillow is a Python imaging library. CWE-787
- CVE-2026-112059 libLAS through 1.8.1 contains a heap out-of-bounds write vulnerability in the point… CWE-787