CVE-2025-6375
NixOS vulnerability analysis and mitigation

Overview

CVE-2025-6375 is a NULL pointer dereference vulnerability in the POCO C++ Libraries affecting the MultipartInputStream function in Net/src/MultipartReader.cpp. It affects all POCO versions up to and including 1.14.1, and was discovered through fuzzing and reported by Yifan Zhang on March 30, 2025, with public disclosure on June 21, 2025. The vulnerability carries a CVSS v3.1 base score of 5.5 (Medium), with availability as the sole impacted dimension (Feedly, GitHub Issue).

Technical details

The root cause is a NULL pointer dereference (CWE-476) combined with improper resource shutdown (CWE-404) in the MultipartStreamBuf constructor within Net/src/MultipartReader.cpp. The original code placed a poco_assert boundary check (!boundary.empty() && boundary.length() < STREAM_BUFFER_SIZE - 6) inside the constructor, but the assertion was evaluated before the stream buffer was fully initialized, leading to a SEGV when a malformed multipart HTTP request with an empty or missing boundary string was processed. The fix (commit 6f2f85913c191ab9ddfb8fae781f5d66afccf3bf) moved the assertion out of the constructor and into the readFromDevice() method where the buffer length is available for proper validation. A proof-of-concept crash input — a crafted HTTP POST with Content-Type: multipart/form-data;boundary -- and an empty boundary — has been publicly disclosed (GitHub Commit, GitHub Issue).

Impact

Successful exploitation causes the application using the POCO library to crash (SIGSEGV), resulting in a denial of service. There is no impact on confidentiality or integrity — only availability is affected. Applications that parse multipart HTTP form data using Poco::Net::HTMLForm or Poco::Net::MultipartReader are directly at risk of process termination when processing malformed input (Feedly, GitHub Issue).

Exploitability

A proof-of-concept crash file (poco_crash.txt) has been publicly disclosed on GitHub, demonstrating the ability to trigger the SEGV via a crafted multipart HTTP request with an empty boundary value. The CVSS v4.0 exploit maturity is rated as PROOF_OF_CONCEPT. The EPSS score is approximately 0.014% (0.000140), indicating a very low probability of widespread exploitation. There is no evidence of in-the-wild exploitation, no known threat actor attribution, and the vulnerability is not listed in the CISA KEV catalog (GitHub PoC, Feedly).

Exploitation steps

  1. Identify target: Locate an application that uses POCO library versions ≤ 1.14.1 and processes multipart HTTP form data (e.g., via Poco::Net::HTMLForm::load() or Poco::Net::MultipartReader).
  2. Craft malicious request: Construct an HTTP POST request with a Content-Type header specifying multipart/form-data but with an empty or missing boundary value, e.g., Content-Type: multipart/form-data;boundary -- with no actual boundary string.
  3. Submit the request: Send the crafted request to the target application's HTTP endpoint that parses multipart form data. The public PoC input is simply: POST 0 0 Content-Type:multipart/form-data;boundary --.
  4. Trigger crash: The MultipartInputStream constructor passes the empty boundary to MultipartStreamBuf, which triggers the misplaced assertion or dereferences a null/invalid pointer at MultipartReader.cpp:164, causing a SIGSEGV and crashing the application process (GitHub Issue, GitHub PoC).

Indicators of compromise

  • Logs: Application crash logs or core dumps referencing Poco::Net::MultipartInputStream::MultipartInputStream or Net/src/MultipartReader.cpp:164; AddressSanitizer output showing SEGV on unknown address in std::ios_base::~ios_base().
  • Process: Unexpected termination of the POCO-based application process; repeated process restarts by a supervisor/service manager.
  • Network: Unusual HTTP POST requests to multipart-handling endpoints with malformed or empty boundary values in the Content-Type: multipart/form-data header (e.g., Content-Type: multipart/form-data;boundary -- with no boundary token) (GitHub Issue).

Mitigation and workarounds

Upgrade the POCO library to version 1.14.2 or later, which includes the fix in commit 6f2f85913c191ab9ddfb8fae781f5d66afccf3bf that moves the boundary validation assertion to the correct location in readFromDevice(). As a temporary workaround, restrict local system access and implement upstream input validation to reject multipart requests with empty or missing boundary strings before they reach the POCO library. Red Hat has tracked this issue with low priority, and Debian has packaged version 1.14.2-1 (GitHub Release, Red Hat Bugzilla).

Community reactions

Red Hat's Product Security team filed a Bugzilla entry (Bug 2374140) and assigned it low severity and priority, indicating limited concern for downstream Red Hat products. The vulnerability was discovered via fuzzing and reported by researcher Yifan Zhang, reflecting the value of fuzz testing in identifying memory safety issues in C++ networking libraries. No significant broader media coverage or notable community debate has been observed (Red Hat Bugzilla, GitHub Issue).

Additional resources


SourceThis report was generated using AI

Related NixOS vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-13097CRITICAL9.1
  • NixOS logoNixOS
  • python3-samba-test
NoYesAug 20, 2026
CVE-2026-11861HIGH8.1
  • NixOS logoNixOS
  • samba-common
NoYesAug 20, 2026
CVE-2026-73198HIGH7.5
  • NixOS logoNixOS
  • ctdb-ceph-mutex
NoYesAug 20, 2026
CVE-2026-73197HIGH7.5
  • NixOS logoNixOS
  • samba-test-libs-debuginfo
NoYesAug 20, 2026
CVE-2026-73196MEDIUM6.5
  • NixOS logoNixOS
  • samba-ldb-ldap-modules-debuginfo
NoYesAug 20, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management