GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration

CVE-2023-54176 (GCVE-0-2023-54176)

Vulnerability from cvelistv5 – Published: 2025-12-30 12:08 – Updated: 2026-05-11 19:56
VLAI
Title
mptcp: stricter state check in mptcp_worker
Summary
In the Linux kernel, the following vulnerability has been resolved: mptcp: stricter state check in mptcp_worker As reported by Christoph, the mptcp protocol can run the worker when the relevant msk socket is in an unexpected state: connect() // incoming reset + fastclose // the mptcp worker is scheduled mptcp_disconnect() // msk is now CLOSED listen() mptcp_worker() Leading to the following splat: divide error: 0000 [#1] PREEMPT SMP CPU: 1 PID: 21 Comm: kworker/1:0 Not tainted 6.3.0-rc1-gde5e8fd0123c #11 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.11.0-2.el7 04/01/2014 Workqueue: events mptcp_worker RIP: 0010:__tcp_select_window+0x22c/0x4b0 net/ipv4/tcp_output.c:3018 RSP: 0018:ffffc900000b3c98 EFLAGS: 00010293 RAX: 000000000000ffd7 RBX: 000000000000ffd7 RCX: 0000000000000000 RDX: 0000000000000000 RSI: ffffffff8214ce97 RDI: 0000000000000004 RBP: 000000000000ffd7 R08: 0000000000000004 R09: 0000000000010000 R10: 000000000000ffd7 R11: ffff888005afa148 R12: 000000000000ffd7 R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000 FS: 0000000000000000(0000) GS:ffff88803ed00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000405270 CR3: 000000003011e006 CR4: 0000000000370ee0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: <TASK> tcp_select_window net/ipv4/tcp_output.c:262 [inline] __tcp_transmit_skb+0x356/0x1280 net/ipv4/tcp_output.c:1345 tcp_transmit_skb net/ipv4/tcp_output.c:1417 [inline] tcp_send_active_reset+0x13e/0x320 net/ipv4/tcp_output.c:3459 mptcp_check_fastclose net/mptcp/protocol.c:2530 [inline] mptcp_worker+0x6c7/0x800 net/mptcp/protocol.c:2705 process_one_work+0x3bd/0x950 kernel/workqueue.c:2390 worker_thread+0x5b/0x610 kernel/workqueue.c:2537 kthread+0x138/0x170 kernel/kthread.c:376 ret_from_fork+0x2c/0x50 arch/x86/entry/entry_64.S:308 </TASK> This change addresses the issue explicitly checking for bad states before running the mptcp worker.
Severity
No CVSS data available.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: e16163b6e2b720fb74e5af758546f6dad27e6c9e , < f0b4a4086cf27240fc621a560da9735159049dcc (git)
Affected: e16163b6e2b720fb74e5af758546f6dad27e6c9e , < aff9099e9c51f15c8def05c75b2b73e8487b5d54 (git)
Affected: e16163b6e2b720fb74e5af758546f6dad27e6c9e , < 19ea79e87af32c2b3c6fc49bd84efeb35ca57678 (git)
Affected: e16163b6e2b720fb74e5af758546f6dad27e6c9e , < d6a0443733434408f2cbd4c53fea6910599bab9e (git)
guessed Create a notification for this product.
Linux Linux Affected: 5.11
Unaffected: 0 , < 5.11 (semver)
Unaffected: 5.15.108 , ≤ 5.15.* (semver)
Unaffected: 6.1.25 , ≤ 6.1.* (semver)
Unaffected: 6.2.12 , ≤ 6.2.* (semver)
Unaffected: 6.3 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "net/mptcp/protocol.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "f0b4a4086cf27240fc621a560da9735159049dcc",
              "status": "affected",
              "version": "e16163b6e2b720fb74e5af758546f6dad27e6c9e",
              "versionType": "git"
            },
            {
              "lessThan": "aff9099e9c51f15c8def05c75b2b73e8487b5d54",
              "status": "affected",
              "version": "e16163b6e2b720fb74e5af758546f6dad27e6c9e",
              "versionType": "git"
            },
            {
              "lessThan": "19ea79e87af32c2b3c6fc49bd84efeb35ca57678",
              "status": "affected",
              "version": "e16163b6e2b720fb74e5af758546f6dad27e6c9e",
              "versionType": "git"
            },
            {
              "lessThan": "d6a0443733434408f2cbd4c53fea6910599bab9e",
              "status": "affected",
              "version": "e16163b6e2b720fb74e5af758546f6dad27e6c9e",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "net/mptcp/protocol.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.11"
            },
            {
              "lessThan": "5.11",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.108",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.25",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.2.*",
              "status": "unaffected",
              "version": "6.2.12",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.3",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.108",
                  "versionStartIncluding": "5.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.25",
                  "versionStartIncluding": "5.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.2.12",
                  "versionStartIncluding": "5.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.3",
                  "versionStartIncluding": "5.11",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmptcp: stricter state check in mptcp_worker\n\nAs reported by Christoph, the mptcp protocol can run the\nworker when the relevant msk socket is in an unexpected state:\n\nconnect()\n// incoming reset + fastclose\n// the mptcp worker is scheduled\nmptcp_disconnect()\n// msk is now CLOSED\nlisten()\nmptcp_worker()\n\nLeading to the following splat:\n\ndivide error: 0000 [#1] PREEMPT SMP\nCPU: 1 PID: 21 Comm: kworker/1:0 Not tainted 6.3.0-rc1-gde5e8fd0123c #11\nHardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.11.0-2.el7 04/01/2014\nWorkqueue: events mptcp_worker\nRIP: 0010:__tcp_select_window+0x22c/0x4b0 net/ipv4/tcp_output.c:3018\nRSP: 0018:ffffc900000b3c98 EFLAGS: 00010293\nRAX: 000000000000ffd7 RBX: 000000000000ffd7 RCX: 0000000000000000\nRDX: 0000000000000000 RSI: ffffffff8214ce97 RDI: 0000000000000004\nRBP: 000000000000ffd7 R08: 0000000000000004 R09: 0000000000010000\nR10: 000000000000ffd7 R11: ffff888005afa148 R12: 000000000000ffd7\nR13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000\nFS:  0000000000000000(0000) GS:ffff88803ed00000(0000) knlGS:0000000000000000\nCS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033\nCR2: 0000000000405270 CR3: 000000003011e006 CR4: 0000000000370ee0\nDR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\nDR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400\nCall Trace:\n \u003cTASK\u003e\n tcp_select_window net/ipv4/tcp_output.c:262 [inline]\n __tcp_transmit_skb+0x356/0x1280 net/ipv4/tcp_output.c:1345\n tcp_transmit_skb net/ipv4/tcp_output.c:1417 [inline]\n tcp_send_active_reset+0x13e/0x320 net/ipv4/tcp_output.c:3459\n mptcp_check_fastclose net/mptcp/protocol.c:2530 [inline]\n mptcp_worker+0x6c7/0x800 net/mptcp/protocol.c:2705\n process_one_work+0x3bd/0x950 kernel/workqueue.c:2390\n worker_thread+0x5b/0x610 kernel/workqueue.c:2537\n kthread+0x138/0x170 kernel/kthread.c:376\n ret_from_fork+0x2c/0x50 arch/x86/entry/entry_64.S:308\n \u003c/TASK\u003e\n\nThis change addresses the issue explicitly checking for bad states\nbefore running the mptcp worker."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-05-11T19:56:55.238Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/f0b4a4086cf27240fc621a560da9735159049dcc"
        },
        {
          "url": "https://git.kernel.org/stable/c/aff9099e9c51f15c8def05c75b2b73e8487b5d54"
        },
        {
          "url": "https://git.kernel.org/stable/c/19ea79e87af32c2b3c6fc49bd84efeb35ca57678"
        },
        {
          "url": "https://git.kernel.org/stable/c/d6a0443733434408f2cbd4c53fea6910599bab9e"
        }
      ],
      "title": "mptcp: stricter state check in mptcp_worker",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2023-54176",
    "datePublished": "2025-12-30T12:08:48.915Z",
    "dateReserved": "2025-12-30T12:06:44.496Z",
    "dateUpdated": "2026-05-11T19:56:55.238Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2023-54176",
      "date": "2026-09-17",
      "epss": "0.00197",
      "percentile": "0.09661"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2023-54176\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2025-12-30T13:16:05.470\",\"lastModified\":\"2026-06-17T06:46:56.603\",\"vulnStatus\":\"Deferred\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nmptcp: stricter state check in mptcp_worker\\n\\nAs reported by Christoph, the mptcp protocol can run the\\nworker when the relevant msk socket is in an unexpected state:\\n\\nconnect()\\n// incoming reset + fastclose\\n// the mptcp worker is scheduled\\nmptcp_disconnect()\\n// msk is now CLOSED\\nlisten()\\nmptcp_worker()\\n\\nLeading to the following splat:\\n\\ndivide error: 0000 [#1] PREEMPT SMP\\nCPU: 1 PID: 21 Comm: kworker/1:0 Not tainted 6.3.0-rc1-gde5e8fd0123c #11\\nHardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.11.0-2.el7 04/01/2014\\nWorkqueue: events mptcp_worker\\nRIP: 0010:__tcp_select_window+0x22c/0x4b0 net/ipv4/tcp_output.c:3018\\nRSP: 0018:ffffc900000b3c98 EFLAGS: 00010293\\nRAX: 000000000000ffd7 RBX: 000000000000ffd7 RCX: 0000000000000000\\nRDX: 0000000000000000 RSI: ffffffff8214ce97 RDI: 0000000000000004\\nRBP: 000000000000ffd7 R08: 0000000000000004 R09: 0000000000010000\\nR10: 000000000000ffd7 R11: ffff888005afa148 R12: 000000000000ffd7\\nR13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000\\nFS:  0000000000000000(0000) GS:ffff88803ed00000(0000) knlGS:0000000000000000\\nCS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033\\nCR2: 0000000000405270 CR3: 000000003011e006 CR4: 0000000000370ee0\\nDR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\\nDR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400\\nCall Trace:\\n \u003cTASK\u003e\\n tcp_select_window net/ipv4/tcp_output.c:262 [inline]\\n __tcp_transmit_skb+0x356/0x1280 net/ipv4/tcp_output.c:1345\\n tcp_transmit_skb net/ipv4/tcp_output.c:1417 [inline]\\n tcp_send_active_reset+0x13e/0x320 net/ipv4/tcp_output.c:3459\\n mptcp_check_fastclose net/mptcp/protocol.c:2530 [inline]\\n mptcp_worker+0x6c7/0x800 net/mptcp/protocol.c:2705\\n process_one_work+0x3bd/0x950 kernel/workqueue.c:2390\\n worker_thread+0x5b/0x610 kernel/workqueue.c:2537\\n kthread+0x138/0x170 kernel/kthread.c:376\\n ret_from_fork+0x2c/0x50 arch/x86/entry/entry_64.S:308\\n \u003c/TASK\u003e\\n\\nThis change addresses the issue explicitly checking for bad states\\nbefore running the mptcp worker.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"net/mptcp/protocol.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"e16163b6e2b720fb74e5af758546f6dad27e6c9e\",\"lessThan\":\"f0b4a4086cf27240fc621a560da9735159049dcc\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"e16163b6e2b720fb74e5af758546f6dad27e6c9e\",\"lessThan\":\"aff9099e9c51f15c8def05c75b2b73e8487b5d54\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"e16163b6e2b720fb74e5af758546f6dad27e6c9e\",\"lessThan\":\"19ea79e87af32c2b3c6fc49bd84efeb35ca57678\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"e16163b6e2b720fb74e5af758546f6dad27e6c9e\",\"lessThan\":\"d6a0443733434408f2cbd4c53fea6910599bab9e\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"net/mptcp/protocol.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"5.11\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"5.11\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.15.108\",\"lessThanOrEqual\":\"5.15.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.1.25\",\"lessThanOrEqual\":\"6.1.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.2.12\",\"lessThanOrEqual\":\"6.2.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.3\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/19ea79e87af32c2b3c6fc49bd84efeb35ca57678\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/aff9099e9c51f15c8def05c75b2b73e8487b5d54\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/d6a0443733434408f2cbd4c53fea6910599bab9e\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/f0b4a4086cf27240fc621a560da9735159049dcc\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}",
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-07-21T18:56:50+00:00",
      "cve": "CVE-2023-54176",
      "id": "CVE-2023-54176",
      "initial_release_date": "2023-01-01T00:00:00+00:00",
      "product_status:known_affected": "156",
      "product_status:known_not_affected": "118",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: mptcp: stricter state check in mptcp_worker",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2023/cve-2023-54176.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-08-31T00:53:25Z",
      "cve": "CVE-2023-54176",
      "id": "CVE-2023-54176",
      "initial_release_date": "2025-12-31T00:29:13Z",
      "product_status:known_affected": "128",
      "product_status:known_not_affected": "432",
      "product_status:recommended": "29",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2023-54176",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2023-54176.json",
      "version": "13"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…