CVE-2024-49940

l2tp: prevent possible tunnel refcount underflow

State
Published
Severity
7.8 High
Published
Oct 21, 2024
Updated
Oct 30, 2026
Reserved
Oct 21, 2024

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

l2tp: prevent possible tunnel refcount underflow

When a session is created, it sets a backpointer to its tunnel. When the session refcount drops to 0, l2tp_session_free drops the tunnel refcount if session->tunnel is non-NULL. However, session->tunnel is set in l2tp_session_create, before the tunnel refcount is incremented by l2tp_session_register, which leaves a small window where session->tunnel is non-NULL when the tunnel refcount hasn't been bumped.

Moving the assignment to l2tp_session_register is trivial but l2tp_session_create calls l2tp_session_set_header_len which uses session->tunnel to get the tunnel's encap. Add an encap arg to l2tp_session_set_header_len to avoid using session->tunnel.

If l2tpv3 sessions have colliding IDs, it is possible for l2tp_v3_session_get to race with l2tp_session_register and fetch a session which doesn't yet have session->tunnel set. Add a check for this case.

Scores

CVSSScoreVectorSource
3.17.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 3953ae7b218df4d1e544b98a393666f9ae58a78c to before aa7132362e79abc4f2add4d8657dd1679341edc5Affected
  • 3953ae7b218df4d1e544b98a393666f9ae58a78c to before 98691b2e28a6c3dac0680914493d54c77f215755Affected
  • 3953ae7b218df4d1e544b98a393666f9ae58a78c to before f7415e60c25a6108cd7955a20b2e66b6251ffe02Affected
  • 3953ae7b218df4d1e544b98a393666f9ae58a78c to before 24256415d18695b46da06c93135f5b51c548b950Affected
  • b102bfc2a90d14f342580285782a9a51c74f7369Affected
  • 10c15ddabbcf888922adbdd44ca3fecf6eab19d9Affected
  • 8d1c650d452c53fcb3f02a7b1d772741639f89a4Affected
  • 12b5fb58ac993c24210cf8cbc72d407d3a4e6490Affected
  • aef37401b467a0b1a9517c69924a1d66937e0789Affected
  • 3.2.99 to before 3.3Affected
  • 3.16.54 to before 3.17Affected
  • 4.4.225 to before 4.5Affected
  • 4.9.225 to before 4.10Affected
  • 4.14.182 to before 4.15Affected
LinuxLinux
  • 4.15Affected
  • before 4.15Not affected
  • 6.1.191 through 6.1.*Not affected
  • 6.6.160 through 6.6.*Not affected
  • 6.11.3 through 6.11.*Not affected
  • 6.12 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.