Commit c444130
Backport of #4729 to SRS 7.0: upgrade the vendored SRT library from
1.5.3 to 1.5.6 to fix two remotely reachable security vulnerabilities.
Backports #4729. Relates to #4727.
SRS 7.0 vendors SRT 1.5.3 and is affected by both CVEs exactly as
`develop` was:
- **CVE-2026-55869** (upstream PR #3317) — `processSrtMsg_KMREQ` copied
`bytelen/4` words into a 104-byte stack buffer with no capacity check.
- **CVE-2026-55868** (upstream PR #3319) — `processSrtMsg_KMRSP` did the
same with no validation of `len` at all.
The enforced-encryption gate in `interpretSrtHandshake` blocks the
handshake path when no passphrase is configured, but it does **not**
cover the post-connect `UMSG_EXT` control packet path
(`CUDT::processSrtMsg`), which has no passphrase gate. At the default
MSS of 1500 that is roughly **1352 bytes of stack overflow** from any
peer that completes a handshake, before SRS-level streamid or callback
auth ever runs.
SRT is off by default at runtime, so only deployments that explicitly
enable `srt_server` were exposed.
1.5.6 also carries three hardening fixes (upstream PRs #3324, #3320,
#3322) for out-of-bounds reads in LOSSREPORT and DROPREQ parsing and a
drop-range guard in `CRcvBuffer::dropMessage`. These matter less in SRS
— the two OOB reads land inside the allocated packet slot, and the
`dropMessage` guard is unreachable under SRS defaults.
Full reachability analysis:
#4727 (comment)
---
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
1 parent 7282464 commit c444130
122 files changed
Lines changed: 7352 additions & 2921 deletions
File tree
- trunk
- 3rdparty
- patches/srt
- srt-1-fit
- common/win
- haicrypt
- scripts
- build-android
- build-ios
- codespell
- release-notes
- win-installer
- srtcore
- src
- app
- protocol
- utest
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | | - | |
13 | | - | |
| 12 | + | |
| 13 | + | |
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
0 commit comments