CVE-2025-10148

NameCVE-2025-10148
Descriptioncurl's websocket code did not update the 32 bit mask pattern for each new outgoing frame as the specification says. Instead it used a fixed mask that persisted and was used throughout the entire connection. A predictable mask pattern allows for a malicious server to induce traffic between the two communicating parties that could be interpreted by an involved proxy (configured or transparent) as genuine, real, HTTP traffic with content and thereby poison its cache. That cached poisoned content could then be served to all users of that proxy.
SourceCVE (at NVD; CERT, LWN, oss-sec, fulldisc, Debian ELTS, Red Hat, Ubuntu, Gentoo, SUSE bugzilla/CVE, GitHub advisories/code/issues, web search, more)

Vulnerable and fixed packages

The table below lists information on source packages.

Source PackageReleaseVersionStatus
curl (PTS)bullseye7.74.0-1.3+deb11u13fixed
bullseye (security)7.74.0-1.3+deb11u15fixed
bookworm7.88.1-10+deb12u14vulnerable
bookworm (security)7.88.1-10+deb12u5vulnerable
trixie8.14.1-2vulnerable
forky, sid8.16.0-1fixed

The information below is based on the following data on fixed versions.

PackageTypeReleaseFixed VersionUrgencyOriginDebian Bugs
curlsourcebullseye(not affected)
curlsource(unstable)8.16.0-1

Notes

[trixie] - curl <no-dsa> (Minor issue)
[bookworm] - curl <ignored> (Minor issue; WebSocket support considered experimental feature, only enabled in builds since 8.8.0-2)
[bullseye] - curl <not-affected> (WebSocket support introduced later)
https://curl.se/docs/CVE-2025-10148.html
Fixed by: https://github.com/curl/curl/commit/84db7a9eae8468c0445b15aa806fa7fa806fa0f2 (curl-8_16_0)

Search for package or bug name: Reporting problems