In the Linux kernel, the following vulnerability has been resolved:
mptcp: plug races between subflow fail and subflow creation
We have races similar to the one addressed by the previous patch between subflow failing and additional subflow creation. They are just harder to trigger.
The solution is similar. Use a separate flag to track the condition 'socket state prevent any additional subflow creation' protected by the fallback lock.
The socket fallback makes such flag true, and also receiving or sending an MP_FAIL option.
The field 'allowinfinitefallback' is now always touched under the relevant lock, we can drop the ONCE annotation on write.
[
{
"id": "CVE-2025-38552-0a972005",
"digest": {
"length": 1332.0,
"function_hash": "202795972678995448540210131197343798532"
},
"signature_type": "Function",
"target": {
"file": "net/mptcp/protocol.c",
"function": "__mptcp_retrans"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c476d627584b7589a134a8b48dd5c6639e4401c5"
},
{
"id": "CVE-2025-38552-11a0eec8",
"digest": {
"length": 494.0,
"function_hash": "153568222610111206366605986318483311747"
},
"signature_type": "Function",
"target": {
"file": "net/mptcp/protocol.c",
"function": "__mptcp_finish_join"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c476d627584b7589a134a8b48dd5c6639e4401c5"
},
{
"id": "CVE-2025-38552-243d309b",
"digest": {
"length": 879.0,
"function_hash": "188808850337245469267776261584842380972"
},
"signature_type": "Function",
"target": {
"file": "net/mptcp/protocol.c",
"function": "__mptcp_init_sock"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c476d627584b7589a134a8b48dd5c6639e4401c5"
},
{
"id": "CVE-2025-38552-391ff258",
"digest": {
"line_hashes": [
"276749163508872549647740150512740063399",
"187108194405519772896161369033607766614",
"260224644653391958753350436372706489255",
"2776975150127862278437256761421139894",
"77095427483486716224334076979145056476",
"298207110506815366050525753373698767017",
"115738088956543273046336437511649802662",
"294844328113125943218936457851176711960",
"209068963417244418521295981366533511804",
"247433817147265913410221268047371788045",
"166885309852997777742848546455035041385",
"42903254512878249071282985677008868833",
"126740411108168128484380640380481499011",
"32412087400116693450359851305778040068",
"177894158633693800795970382680706091840",
"46810095436632282075467577223844701248",
"52310056242665682577783325349359989203",
"62244726211189920696583704647889372469",
"115738088956543273046336437511649802662",
"294844328113125943218936457851176711960"
],
"threshold": 0.9
},
"signature_type": "Line",
"target": {
"file": "net/mptcp/protocol.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c476d627584b7589a134a8b48dd5c6639e4401c5"
},
{
"id": "CVE-2025-38552-3a28b103",
"digest": {
"length": 438.0,
"function_hash": "328469743288435932107128695642290018251"
},
"signature_type": "Function",
"target": {
"file": "net/mptcp/protocol.h",
"function": "__mptcp_try_fallback"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c476d627584b7589a134a8b48dd5c6639e4401c5"
},
{
"id": "CVE-2025-38552-40a4b19a",
"digest": {
"length": 485.0,
"function_hash": "253243127588570285573253186918758627767"
},
"signature_type": "Function",
"target": {
"file": "net/mptcp/pm.c",
"function": "mptcp_pm_mp_fail_received"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@def5b7b2643ebba696fc60ddf675dca13f073486"
},
{
"id": "CVE-2025-38552-48ffaed9",
"digest": {
"length": 380.0,
"function_hash": "104966204888975519974064193278068182906"
},
"signature_type": "Function",
"target": {
"file": "net/mptcp/subflow.c",
"function": "mptcp_subflow_fail"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@def5b7b2643ebba696fc60ddf675dca13f073486"
},
{
"id": "CVE-2025-38552-5a354286",
"digest": {
"length": 956.0,
"function_hash": "167658289314910784276418627721006606817"
},
"signature_type": "Function",
"target": {
"file": "net/mptcp/protocol.c",
"function": "__mptcp_init_sock"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@def5b7b2643ebba696fc60ddf675dca13f073486"
},
{
"id": "CVE-2025-38552-5f3e9695",
"digest": {
"length": 251.0,
"function_hash": "125779726472078452889750204251249395062"
},
"signature_type": "Function",
"target": {
"file": "net/mptcp/protocol.c",
"function": "mptcp_subflow_joined"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c476d627584b7589a134a8b48dd5c6639e4401c5"
},
{
"id": "CVE-2025-38552-7c3033e1",
"digest": {
"line_hashes": [
"257522654220394027744735866049737219160",
"280104090881878134093795410510340952675",
"116869352286745016862403926640555457866",
"337694954341173987884709787292823636062",
"135786786208968651413368136982829392441",
"25723492120423148407694167146540794430",
"326072983288756019169738633018884267136",
"286420643750126279925809851434619983239",
"64475517304720659646486709409764294580",
"240108875969058103117975386896697614465",
"313635656723689593483020288542803818533"
],
"threshold": 0.9
},
"signature_type": "Line",
"target": {
"file": "net/mptcp/protocol.h"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@def5b7b2643ebba696fc60ddf675dca13f073486"
},
{
"id": "CVE-2025-38552-7f64fe81",
"digest": {
"line_hashes": [
"180611187035522157819769140336529368186",
"184411623719491629519721708126674219892",
"191242030732774345819137019915934060639",
"59391311774211102665752875052143980065",
"198914818484873042109427659539862641656",
"335021927218521201777050288451432225692",
"182094712834022162501057816938034327680",
"111139302694479876461293385502365612711",
"75342097580338460986620220794131125059",
"202365959116050171922224226756057455154",
"40471459401794555732953721144530426029",
"326782629811065141450401367975085266045",
"261785820091879905165066955261043721907",
"253743382692815635525997021226201854760",
"134038812534702727376404893908269988390",
"5712015939968687102813257769369135829",
"199591685281616499029435238069129698577",
"71317180619766315650791392736614932199",
"49450444694767015940215768027903346014",
"109890114591111307804976297943197347543",
"22005059240928953944850025881588520784",
"50490962370827562646173174489307628983",
"147970585903423584552282633632654622290",
"160556121152550232200856592096176246856"
],
"threshold": 0.9
},
"signature_type": "Line",
"target": {
"file": "net/mptcp/subflow.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@def5b7b2643ebba696fc60ddf675dca13f073486"
},
{
"id": "CVE-2025-38552-804e16d1",
"digest": {
"length": 581.0,
"function_hash": "126282049487632667985174495631408138917"
},
"signature_type": "Function",
"target": {
"file": "net/mptcp/protocol.c",
"function": "__mptcp_finish_join"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@def5b7b2643ebba696fc60ddf675dca13f073486"
},
{
"id": "CVE-2025-38552-88cbb13d",
"digest": {
"length": 1554.0,
"function_hash": "200238736250405539999041655764782179715"
},
"signature_type": "Function",
"target": {
"file": "net/mptcp/protocol.c",
"function": "__mptcp_retrans"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@def5b7b2643ebba696fc60ddf675dca13f073486"
},
{
"id": "CVE-2025-38552-8a9a3fb2",
"digest": {
"line_hashes": [
"203425142880311909044625043696460284233",
"65336828195931460786681564312053514695",
"54803841915028509451421330350604830104",
"312764919332151311999262743148910345180",
"25723492120423148407694167146540794430",
"326072983288756019169738633018884267136",
"286420643750126279925809851434619983239",
"64475517304720659646486709409764294580",
"240108875969058103117975386896697614465",
"313635656723689593483020288542803818533"
],
"threshold": 0.9
},
"signature_type": "Line",
"target": {
"file": "net/mptcp/protocol.h"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c476d627584b7589a134a8b48dd5c6639e4401c5"
},
{
"id": "CVE-2025-38552-a140a44c",
"digest": {
"line_hashes": [
"225678351108378058388593020790464238590",
"103885797361054289825854754586255317680",
"80797796159981083102549777288459716649",
"133512762566062340766499559845837328886",
"19700368643120985804228719463883083443"
],
"threshold": 0.9
},
"signature_type": "Line",
"target": {
"file": "net/mptcp/pm.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c476d627584b7589a134a8b48dd5c6639e4401c5"
},
{
"id": "CVE-2025-38552-a17fed02",
"digest": {
"line_hashes": [
"258980748730818346394850727100643467038",
"184411623719491629519721708126674219892",
"191242030732774345819137019915934060639",
"59391311774211102665752875052143980065",
"198914818484873042109427659539862641656",
"335021927218521201777050288451432225692",
"182094712834022162501057816938034327680",
"111139302694479876461293385502365612711",
"75342097580338460986620220794131125059",
"202365959116050171922224226756057455154",
"40471459401794555732953721144530426029",
"326782629811065141450401367975085266045",
"261785820091879905165066955261043721907",
"253743382692815635525997021226201854760",
"134038812534702727376404893908269988390",
"5712015939968687102813257769369135829",
"199591685281616499029435238069129698577",
"71317180619766315650791392736614932199",
"49450444694767015940215768027903346014",
"109890114591111307804976297943197347543",
"22005059240928953944850025881588520784",
"79720521362993427815492368871933057574",
"117289293590386200557311217107183363496",
"120609103420517922945046643078639891484"
],
"threshold": 0.9
},
"signature_type": "Line",
"target": {
"file": "net/mptcp/subflow.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c476d627584b7589a134a8b48dd5c6639e4401c5"
},
{
"id": "CVE-2025-38552-a905a941",
"digest": {
"length": 2137.0,
"function_hash": "99472310845421304063904807163556816399"
},
"signature_type": "Function",
"target": {
"file": "net/mptcp/subflow.c",
"function": "subflow_check_data_avail"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@def5b7b2643ebba696fc60ddf675dca13f073486"
},
{
"id": "CVE-2025-38552-abefb2db",
"digest": {
"line_hashes": [
"225678351108378058388593020790464238590",
"103885797361054289825854754586255317680",
"80797796159981083102549777288459716649",
"133512762566062340766499559845837328886",
"19700368643120985804228719463883083443"
],
"threshold": 0.9
},
"signature_type": "Line",
"target": {
"file": "net/mptcp/pm.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@def5b7b2643ebba696fc60ddf675dca13f073486"
},
{
"id": "CVE-2025-38552-b1d3516e",
"digest": {
"length": 251.0,
"function_hash": "125779726472078452889750204251249395062"
},
"signature_type": "Function",
"target": {
"file": "net/mptcp/protocol.c",
"function": "mptcp_subflow_joined"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@def5b7b2643ebba696fc60ddf675dca13f073486"
},
{
"id": "CVE-2025-38552-c2e8bcb4",
"digest": {
"length": 485.0,
"function_hash": "253243127588570285573253186918758627767"
},
"signature_type": "Function",
"target": {
"file": "net/mptcp/pm.c",
"function": "mptcp_pm_mp_fail_received"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c476d627584b7589a134a8b48dd5c6639e4401c5"
},
{
"id": "CVE-2025-38552-c797eb61",
"digest": {
"length": 380.0,
"function_hash": "104966204888975519974064193278068182906"
},
"signature_type": "Function",
"target": {
"file": "net/mptcp/subflow.c",
"function": "mptcp_subflow_fail"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c476d627584b7589a134a8b48dd5c6639e4401c5"
},
{
"id": "CVE-2025-38552-e63f104d",
"digest": {
"length": 1106.0,
"function_hash": "285673317471610106611809640474075362331"
},
"signature_type": "Function",
"target": {
"file": "net/mptcp/protocol.c",
"function": "mptcp_finish_join"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@def5b7b2643ebba696fc60ddf675dca13f073486"
},
{
"id": "CVE-2025-38552-e85c8315",
"digest": {
"length": 1016.0,
"function_hash": "191446538796055438908040583205508538941"
},
"signature_type": "Function",
"target": {
"file": "net/mptcp/protocol.c",
"function": "mptcp_finish_join"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c476d627584b7589a134a8b48dd5c6639e4401c5"
},
{
"id": "CVE-2025-38552-ecb50cf1",
"digest": {
"length": 2331.0,
"function_hash": "326851659933791150155818435296811266803"
},
"signature_type": "Function",
"target": {
"file": "net/mptcp/subflow.c",
"function": "subflow_check_data_avail"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c476d627584b7589a134a8b48dd5c6639e4401c5"
},
{
"id": "CVE-2025-38552-f3e05651",
"digest": {
"line_hashes": [
"276749163508872549647740150512740063399",
"187108194405519772896161369033607766614",
"260224644653391958753350436372706489255",
"2776975150127862278437256761421139894",
"77095427483486716224334076979145056476",
"298207110506815366050525753373698767017",
"115738088956543273046336437511649802662",
"294844328113125943218936457851176711960",
"64942807662448452710093760400485627685",
"247433817147265913410221268047371788045",
"166885309852997777742848546455035041385",
"42903254512878249071282985677008868833",
"126740411108168128484380640380481499011",
"32412087400116693450359851305778040068",
"267729162574287504413545075653665794769",
"14457234274881484519176282754776504254",
"52310056242665682577783325349359989203",
"62244726211189920696583704647889372469",
"115738088956543273046336437511649802662",
"294844328113125943218936457851176711960"
],
"threshold": 0.9
},
"signature_type": "Line",
"target": {
"file": "net/mptcp/protocol.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@def5b7b2643ebba696fc60ddf675dca13f073486"
},
{
"id": "CVE-2025-38552-f9134824",
"digest": {
"length": 405.0,
"function_hash": "251161495203667777239278613318630017583"
},
"signature_type": "Function",
"target": {
"file": "net/mptcp/protocol.h",
"function": "__mptcp_try_fallback"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@def5b7b2643ebba696fc60ddf675dca13f073486"
}
]