CVE-2025-49140 is a high-severity (CVSS 7.5) CWE-770 vulnerability in github.com/pion/interceptor. A fix is available for github.com/pion/interceptor — see the affected versions and patch details below.
Pion Interceptor's improper RTP padding handling allows remote crash for SFU users (DoS)
Exploitation Status
No confirmed exploitation observed yet
- CISA assesses this as automatable — exploitation doesn’t require manual, per-target effort, which raises the odds of mass scanning and opportunistic attacks.
- CISA’s own triage has not observed active exploitation or public proof-of-concept code for this CVE as of its last assessment.
Exploitation and automatability from CISA’s SSVC triage for CVE-2025-49140.
EPSS Exploitation Probability
Probability of exploitation in the next 30 days, from FIRST.org EPSS.
How urgent is this, really
Where this sits among everything scored
Real-World Exposure
github.com/pion/interceptorReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects Go packages — download data is not available via public APIs for these ecosystems.
Description
Impact
Pion Interceptor versions v0.1.36 through v0.1.38 contain a bug in a RTP packet factory that can be exploited to trigger a panic with Pion based SFU via crafted RTP packets, This only affect users that use pion/interceptor.
Patches
Upgrade to v0.1.39 or later, which includes PR #338 which validates that: padLen > 0 && padLen <= payloadLength and return error on overflow, avoiding panic.
If upgrading is not possible, apply the patch from the pull request manually or drop packets whose P-bit is set but whose padLen is zero or larger than the remaining payload.
Workarounds
At the application layer, reject any RTP packet where:
hasPadding (P-bit field) == true && (padLen == 0 || padLen > packetLen – headerLen)
before passing it to Pion’s packet factories.
References
Commit fixing the bug: https://github.com/pion/interceptor/commit/fa5b35ea867389cec33a9c82fffbd459ca8958e5 Pull request: https://github.com/pion/interceptor/pull/338 Issue: https://github.com/pion/webrtc/issues/3148
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 🐹Go | github.com/pion/interceptor | ≥ 0.1.36&&< 0.1.39 | 0.1.39go get github.com/pion/interceptor@v0.1.39 |
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for github.com/pion/interceptor, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update github.com/pion/interceptor to 0.1.39 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms CVE-2025-49140 is resolved across your whole dependency graph.
Workarounds
Constrain what reaches the vulnerable code: limit the size and shape of untrusted input, isolate the affected component in a sandboxed or least-privileged process, and enable the platform's memory-safety mitigations (ASLR, stack protector, hardened allocator) so an out-of-bounds access is more likely to fail closed than to be exploitable.
Frequently Asked Questions
Is CVE-2025-49140 in your dependencies?
Find it across Go, including transitive dependencies.