Description
curl'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.
Mitigation
Minimal update. May introduce new vulnerabilities or breaking changes.
|
 debian 13 | | =8.14.1-2 || >=0 <8.14.1-2+deb13u1 | 8.14.1-2+deb13u1 |
 debian 14 | | =8.14.1-2 || =8.14.1-2+exp1 || =8.15.0-1 || =8.15.0-1~bpo13+1 || =8.15.0-1~exp1 || =8.15.0~rc1-1exp1 || =8.15.0~rc2-1~exp1 || =8.15.0~rc3-1~exp1 || =8.16.0-1~bpo13+1 || =8.16.0~rc1-1~exp1 || =8.16.0~rc2-1 || =8.16.0~rc2-2 || =8.16.0~rc3-1 || >=0 <8.16.0-1 | 8.16.0-1 |
 debian 12 | | =7.88.1-10 || =7.88.1-10+deb12u1 || =7.88.1-10+deb12u11 || =7.88.1-10+deb12u12 || =7.88.1-10+deb12u13 || =7.88.1-10+deb12u14 || =7.88.1-10+deb12u1~bpo11+1 || =7.88.1-10+deb12u2 || =7.88.1-10+deb12u3 || =7.88.1-10+deb12u3~bpo11+1 || =7.88.1-10+deb12u4 || =7.88.1-10+deb12u5 || =7.88.1-10+deb12u5~bpo11+1 || =7.88.1-10+deb12u6 || =7.88.1-10+deb12u6~bpo11+1 || =7.88.1-10+deb12u7 || =7.88.1-10+deb12u8 || =7.88.1-10+deb12u9 || >=0 <7.88.1-10+deb12u15 | 7.88.1-10+deb12u15 |
 alpine v3.19 | | | 8.14.1-r2 |
 alpine v3.20 | | | 8.14.1-r2 |
 alpine v3.21 | | | 8.14.1-r2 |
 alpine v3.22 | | | 8.14.1-r2 |
 alpine v3.23 | | | 8.16.0-r0 |
 rpm rhel10 | | - | - |
 alpine v3.24 | | | 8.16.0-r0 |