Bug 2540872

Summary: kernel: kernel: strparser: use-after-free via msg_timer_work rearm after strp_done() cancellation
Product: [Other] Security Response Reporter: OSIDB Bzimport <bzimport>
Component: vulnerabilityAssignee: Product Security DevOps Team <prodsec-dev>
Status: NEW --- QA Contact:
Severity: high Docs Contact:
Priority: high    
Version: unspecifiedCC: akhatavk, aos-team-art-private, asdas, dpaolell, jdelft, jupierce, lgarciaa, mbiarnes, ppalepu, ppostler, prdhamdh, rhel-process-autobot, sghai, sidsharm, suppawar, vlaad, watson-tool-maintainers
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: ---
Doc Text:
A use-after-free vulnerability exists in the Linux kernel's strparser subsystem when handling ESP-in-TCP (espintcp). During espintcp_close(), msg_timer_work can be re-armed by a concurrent strp_data_ready() execution after it has been cancelled. The re-armed timer may subsequently access the freed socket context, causing a use-after-free condition.
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description OSIDB Bzimport 2026-09-24 23:49:30 UTC
A use-after-free vulnerability was found in the Linux kernel's strparser subsystem (net/strparser/strparser.c), reachable via ESP-in-TCP (espintcp).

When espintcp_close() calls strp_done() to tear down the stream parser, it cancels msg_timer_work via cancel_delayed_work_sync(). However, strp_data_ready() can concurrently run on another CPU and pass the strp->stopped check before strp_stop() sets it. This allows strp_recv() to re-arm msg_timer_work via mod_delayed_work() after cancellation has completed. When the socket context is subsequently freed, the re-armed
timer fires against freed memory, resulting in a use-after-free. The vulnerable code path is reachable by an unprivileged local user was introduced in commit bbb03029a899 ("strparser: Generalize strparser"). 

Upstream patch (not yet merged):
https://lore.kernel.org/all/aZgpkyTDU3aXe_V0@v4bel/

Comment 4 Jon Orris 2026-10-19 12:38:33 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 8.6 Advanced Mission Critical Update Support
  Red Hat Enterprise Linux 8.6 Extended Update Support Long-Life Add-On

Via RHSA-2026:85000 https://access.redhat.com/errata/RHSA-2026:85000

Comment 5 Jon Orris 2026-10-20 03:42:51 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 8

Via RHSA-2026:85774 https://access.redhat.com/errata/RHSA-2026:85774

Comment 6 Jon Orris 2026-10-20 03:52:06 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 8

Via RHSA-2026:85773 https://access.redhat.com/errata/RHSA-2026:85773

Comment 7 Jon Orris 2026-10-20 20:31:21 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 9

Via RHSA-2026:86033 https://access.redhat.com/errata/RHSA-2026:86033