Skip to content

Improper RTP padding handling allows remote crash for SFU users (DoS)

High
JoeTurki published GHSA-f26w-gh5m-qq77 Jun 9, 2025

Package

gomod github.com/pion/interceptor (Go)

Affected versions

v0.1.36 - v0.1.38

Patched versions

v0.1.39

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: fa5b35e
Pull request: #338
Issue: pion/webrtc#3148

Severity

High

CVSS overall score

This score calculates overall vulnerability severity from 0 to 10 and is based on the Common Vulnerability Scoring System (CVSS).
/ 10

CVSS v3 base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

CVSS v3 base metrics

Attack vector: More severe the more the remote (logically and physically) an attacker can be in order to exploit the vulnerability.
Attack complexity: More severe for the least complex attacks.
Privileges required: More severe if no privileges are required.
User interaction: More severe when no user interaction is required.
Scope: More severe when a scope change occurs, e.g. one vulnerable component impacts resources in components beyond its security scope.
Confidentiality: More severe when loss of data confidentiality is highest, measuring the level of data access available to an unauthorized user.
Integrity: More severe when loss of data integrity is the highest, measuring the consequence of data modification possible by an unauthorized user.
Availability: More severe when the loss of impacted component availability is highest.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

CVE ID

CVE-2025-49140

Weaknesses

No CWEs

Credits