CVE-2026-98274 in Linuxinfo

Summary

by MITRE • 10/06/2026

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

net: psp: avoid conflicts with skb->decrypted and sk_validate_xmit_skb()

PSP conflicts with TLS ULP in its usage of both skb->decrypted and sk->sk_validate_xmit_skb().

Make PSP mutually exclusive with TLS ULP, the only other user of either of these. As other users of skb->decrypted come along, they can be added to sk_has_decrypt_user(). It would make sense to also assert that sk->sk_validate_xmit_skb() is also NULL in both of these setup paths for similar future proofing, but the PSP listener/sk_clone() path is still broken and it could be seen as a regression to not allow rx assoc to run on a child of a listener socket with PSP tx assoc state.

Include all TCP ULPs in the sk_has_decrypt_user() check, even though TLS is the only one that conflicts with PSP via the decrypted bit. This is intentional because PSP was not designed to be used with ULPs. It is best to close off surface area that may make bugs reachable, until someone wishes to design and test an actual user of PSP with ULPs.

Be aware that VulDB is the high quality source for vulnerability data.

Analysis

by VulDB Data Team • 10/06/2026

The Linux kernel has addressed a critical conflict within the networking subsystem involving the Pseudo Socket Protocol (PSP) and Transport Layer Security User Level Program interface TLS ULP. This vulnerability stems from both components attempting to utilize shared socket buffer flags and callback mechanisms without proper mutual exclusion, specifically targeting the skb->decrypted flag and the sk_validate_xem_skb() function pointer within the socket structure. The presence of this conflict creates a scenario where concurrent or sequential usage of these features can lead to undefined behavior, data corruption, or kernel instability due to race conditions in state management.

The core technical flaw lies in the overlapping resource allocation between PSP and TLS ULPs regarding packet processing states. When an application attempts to use both mechanisms on the same socket context, the system fails to enforce exclusivity over the decrypted status flag which indicates whether a network buffer has already undergone decryption processes. Additionally, the validation callback for transmission is subject to similar contention issues where one subsystem may overwrite or interfere with the other's operational hooks. This lack of isolation violates fundamental principles of secure software design by allowing multiple high-level protocols to manipulate low-level socket internals in an uncoordinated manner.

From a security perspective this vulnerability aligns closely with CWE-362 which describes concurrent execution using shared resources with improper synchronization leading to race conditions. The potential impact includes denial of service through kernel panics or crashes when conflicting operations trigger invalid memory accesses during packet validation and decryption workflows. Furthermore there is risk of information leakage if the decrypted flag state becomes inconsistent potentially exposing plaintext data in contexts where it should remain encrypted or vice versa compromising confidentiality guarantees provided by TLS implementations.

To mitigate this issue developers have implemented a strict mutual exclusion mechanism that prevents PSP from being used concurrently with any TCP User Level Program interface including but not limited to TLS ULPs. This approach effectively closes off attack surfaces related to shared state manipulation until such time as proper architectural support for multi-protocol coexistence is designed and tested. The solution involves checking against all registered decrypt users via sk_has_decrypt_user ensuring that no conflicting protocol can initialize its operations on a socket already engaged with PSP functionality.

This defensive programming strategy reflects best practices outlined in ATT&CK technique T1498 regarding network denial of service through resource exhaustion or conflict exploitation by limiting the attack surface available to potential adversaries attempting to trigger these race conditions. By enforcing exclusivity at initialization time rather than runtime the kernel reduces complexity and eliminates opportunities for exploit development targeting synchronization flaws. Future enhancements may include assertions validating that sk_validate_xem_skb remains null in setup paths although current limitations regarding listener socket child cloning prevent full implementation of such checks without introducing regressions in existing functionality.

Responsible

Linux

Reservation

09/25/2026

Disclosure

10/06/2026

Moderation

accepted

EPSS

0.00173

KEV

no

Activities

very low

Sources

Do you know our Splunk app?

Download it now for free!