Security Vulnerability Report
中文
CVE-2024-14030 CVSS 8.1 HIGH

CVE-2024-14030

Published: 2026-03-31 12:16:26
Last Modified: 2026-04-13 14:07:55
Source: 9b29abf9-4ab0-4765-b253-1875cd9b441e

Description

Sereal::Decoder versions from 4.000 through 4.009_002 for Perl embeds a vulnerable version of the Zstandard library. Sereal::Decoder embeds a version of the Zstandard (zstd) library that is vulnerable to CVE-2019-11922. This is a race condition in the one-pass compression functions of Zstandard prior to version 1.3.8 could allow an attacker to write bytes out of bounds if an output buffer smaller than the recommended size was used.

CVSS Details

CVSS Score
8.1
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H

Configurations (Affected Products)

cpe:2.3:a:yves:sereal\:\:decoder:*:*:*:*:*:perl:*:* - VULNERABLE
Sereal::Decoder 4.000
Sereal::Decoder 4.009_002

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
#!/usr/bin/perl use strict; use warnings; # This PoC demonstrates the usage of Sereal::Decoder with a vulnerable version. # It simulates handling a payload that could trigger the embedded zstd race condition. # CVE-2024-14030 / CVE-2019-11922 # Ensure you are running a vulnerable version (4.000 - 4.009_002) use Sereal::Decoder; my $decoder = Sereal::Decoder->new({ # Decoder options }); # Placeholder for a malicious payload designed to trigger the race condition. # The actual payload would need to be specifically crafted to exploit the zstd # out-of-bounds write when using a small output buffer. # In a real scenario, this byte string would be the result of reverse engineering # the trigger conditions for the race condition. my $malicious_payload = "<Sereal_Magic_Header_And_Malicious_Zstd_Block>"; print "[*] Attempting to decode payload with vulnerable Sereal::Decoder...\n"; eval { # The decode operation calls the vulnerable embedded zstd library $decoder->decode($malicious_payload, my $out); }; if ($@) { print "[!] Exception caught (Possible crash or corruption): $@\n"; } else { print "[*] Decoding completed. Vulnerability may require specific threading/buffer conditions.\n"; }

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2024-14030", "sourceIdentifier": "9b29abf9-4ab0-4765-b253-1875cd9b441e", "published": "2026-03-31T12:16:26.153", "lastModified": "2026-04-13T14:07:54.600", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Sereal::Decoder versions from 4.000 through 4.009_002 for Perl embeds a vulnerable version of the Zstandard library.\n\nSereal::Decoder embeds a version of the Zstandard (zstd) library that is vulnerable to CVE-2019-11922. This is a race condition in the one-pass compression functions of Zstandard prior to version 1.3.8 could allow an attacker to write bytes out of bounds if an output buffer smaller than the recommended size was used."}], "metrics": {"cvssMetricV31": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H", "baseScore": 8.1, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "HIGH", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 2.2, "impactScore": 5.9}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-787"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:yves:sereal\\:\\:decoder:*:*:*:*:*:perl:*:*", "versionStartIncluding": "4.000", "versionEndExcluding": "4.010", "matchCriteriaId": "2A8D88D7-1129-4874-BDC7-5627BAB3CB74"}]}]}], "references": [{"url": "https://github.com/advisories/GHSA-w77f-wv46-4vcx", "source": "9b29abf9-4ab0-4765-b253-1875cd9b441e", "tags": ["Not Applicable"]}, {"url": "https://metacpan.org/release/YVES/Sereal-Decoder-4.010/changes", "source": "9b29abf9-4ab0-4765-b253-1875cd9b441e", "tags": ["Release Notes"]}, {"url": "https://www.cve.org/CVERecord?id=CVE-2019-11922", "source": "9b29abf9-4ab0-4765-b253-1875cd9b441e", "tags": ["Not Applicable"]}]}}