CVE-2026-98130 (GCVE-0-2026-98130)
Vulnerability from cvelistv5
Published
2026-09-25 10:36
Modified
2026-10-19 09:14
Summary
In the Linux kernel, the following vulnerability has been resolved: sctp: fix a TOCTOU race in SCTP_CMD_TIMER_START The SCTP_CMD_TIMER_START handler checks timer_pending() before calling timer_reduce(). The timer can expire and detach between these operations, causing timer_reduce() to rearm the timer without taking the association reference required for the newly armed timer. The timer callback later unconditionally drops its association reference, which can leave the association reference count unbalanced and result in use-after-free during association teardown. Use the return value of timer_reduce() to determine whether the timer was actually armed. Take the association reference only when timer_reduce() successfully starts a new timer, closing the race between checking the timer state and rearming it. This issue was reported by Nico Yip (@_cyeaa_) working with TrendAI Zero Day Initiative.
Impacted products
Vendor Product Version
Linux Linux Version: 20a785aa52c82246055a089e55df9dac47d67da1
Version: 20a785aa52c82246055a089e55df9dac47d67da1
Version: 20a785aa52c82246055a089e55df9dac47d67da1
Version: 20a785aa52c82246055a089e55df9dac47d67da1
Version: 20a785aa52c82246055a089e55df9dac47d67da1
Version: 20a785aa52c82246055a089e55df9dac47d67da1
Version: 20a785aa52c82246055a089e55df9dac47d67da1
Version: 20a785aa52c82246055a089e55df9dac47d67da1
Version: 9c0a4652f750afe3b4468cbcd9335b244ce2facd
Version: 70989e501fbce502198d82da88358ce453575a05
Version: 085bb270b4b1168c93afb37bbafc881207d15443
Version: 4.19.126   ≤
Version: 5.4.44   ≤
Version: 5.6.16   ≤
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "net/sctp/sm_sideeffect.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "cbf2df9aac4202f9fb0b361a7fe8c79b29fad92c",
              "status": "affected",
              "version": "20a785aa52c82246055a089e55df9dac47d67da1",
              "versionType": "git"
            },
            {
              "lessThan": "3205a20f837f5b1f009427ac3d9f706bf8a6fbec",
              "status": "affected",
              "version": "20a785aa52c82246055a089e55df9dac47d67da1",
              "versionType": "git"
            },
            {
              "lessThan": "755d70ca845fd9b87c7b338ae6ae832b08cd0005",
              "status": "affected",
              "version": "20a785aa52c82246055a089e55df9dac47d67da1",
              "versionType": "git"
            },
            {
              "lessThan": "09e7f9290d63178f56095d5c18fb9f9470153db5",
              "status": "affected",
              "version": "20a785aa52c82246055a089e55df9dac47d67da1",
              "versionType": "git"
            },
            {
              "lessThan": "e42ba56281ca3ae2dcb3558bebee9a1c9a4831d9",
              "status": "affected",
              "version": "20a785aa52c82246055a089e55df9dac47d67da1",
              "versionType": "git"
            },
            {
              "lessThan": "00b841bac10230c557be6b38efc48508198fe23e",
              "status": "affected",
              "version": "20a785aa52c82246055a089e55df9dac47d67da1",
              "versionType": "git"
            },
            {
              "lessThan": "3d698d1e6c8bc41e3e1707777a016f1bdd07842d",
              "status": "affected",
              "version": "20a785aa52c82246055a089e55df9dac47d67da1",
              "versionType": "git"
            },
            {
              "lessThan": "2188569e7e1b0bc3f3b557dc97ab7a02befc11c8",
              "status": "affected",
              "version": "20a785aa52c82246055a089e55df9dac47d67da1",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "9c0a4652f750afe3b4468cbcd9335b244ce2facd",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "70989e501fbce502198d82da88358ce453575a05",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "085bb270b4b1168c93afb37bbafc881207d15443",
              "versionType": "git"
            },
            {
              "lessThan": "4.20",
              "status": "affected",
              "version": "4.19.126",
              "versionType": "semver"
            },
            {
              "lessThan": "5.5",
              "status": "affected",
              "version": "5.4.44",
              "versionType": "semver"
            },
            {
              "lessThan": "5.7",
              "status": "affected",
              "version": "5.6.16",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "net/sctp/sm_sideeffect.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.7"
            },
            {
              "lessThan": "5.7",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.271",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.222",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.189",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.158",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.111",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.53",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.2.*",
              "status": "unaffected",
              "version": "7.2.7",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.3",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.271",
                  "versionStartIncluding": "5.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.222",
                  "versionStartIncluding": "5.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.189",
                  "versionStartIncluding": "5.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.158",
                  "versionStartIncluding": "5.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.111",
                  "versionStartIncluding": "5.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.53",
                  "versionStartIncluding": "5.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2.7",
                  "versionStartIncluding": "5.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.3",
                  "versionStartIncluding": "5.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "4.19.126",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "5.4.44",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "5.6.16",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsctp: fix a TOCTOU race in SCTP_CMD_TIMER_START\n\nThe SCTP_CMD_TIMER_START handler checks timer_pending() before calling\ntimer_reduce(). The timer can expire and detach between these operations,\ncausing timer_reduce() to rearm the timer without taking the association\nreference required for the newly armed timer.\n\nThe timer callback later unconditionally drops its association reference,\nwhich can leave the association reference count unbalanced and result in\nuse-after-free during association teardown.\n\nUse the return value of timer_reduce() to determine whether the timer was\nactually armed. Take the association reference only when timer_reduce()\nsuccessfully starts a new timer, closing the race between checking the\ntimer state and rearming it.\n\nThis issue was reported by Nico Yip (@_cyeaa_) working with TrendAI Zero\nDay Initiative."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 8.1,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:N - A remote SCTP peer\u0027s restart COOKIE-ECHO goes through sctp_sf_do_5_2_4_dupcook()/sctp_sf_do_dupcook_a() in SHUTDOWN_SENT and on to sctp_sf_do_9_2_start_shutdown(). That queues SCTP_CMD_TIMER_START for T2-shutdown while T2 is already armed, which reaches the racy timer_pending()/timer_reduce() pair in sctp_cmd_interpreter(). SCTP runs over routable IP.\nAC:H - The peer must time its COOKIE-ECHO so that T2 expires on another CPU in the window between timer_pending() and timer_reduce(), which is two adjacent statements. The attacker can retry by timing packets around T2 retransmissions, but cannot control when the kernel timer fires relative to softirq processing. The target association must also be in SHUTDOWN_SENT with its socket closing.\nPR:N - SCTP association setup and the restart COOKIE-ECHO path in sctp_sf_do_dupcook_a() need no authentication. The attacker is just the unauthenticated peer of the association.\nUI:N - No victim action is needed beyond the SCTP service normally closing an association, which puts it in SHUTDOWN_SENT. The attacker sends all the triggering packets.\nS:U - The corruption is confined to the kernel\u0027s own sctp_association object. No security boundary such as a VM or IOMMU is crossed.\nC:H - Re-arming the timer without sctp_association_hold() lets sctp_generate_timeout_event() call sctp_association_put() one time too many. The association is then freed while still referenced, a use-after-free of a large slab object whose reclaimed contents can be used to leak kernel memory.\nI:H - The freed sctp_association holds function-relevant state such as timers, transports and the outqueue. Later timer callbacks and teardown writes into reclaimed memory give a write primitive that could be used to hijack control flow.\nA:H - The unbalanced refcount causes a refcount underflow or use-after-free during association teardown or a later timer callback, crashing the kernel."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-10-19T09:14:23.404Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/cbf2df9aac4202f9fb0b361a7fe8c79b29fad92c"
        },
        {
          "url": "https://git.kernel.org/stable/c/3205a20f837f5b1f009427ac3d9f706bf8a6fbec"
        },
        {
          "url": "https://git.kernel.org/stable/c/755d70ca845fd9b87c7b338ae6ae832b08cd0005"
        },
        {
          "url": "https://git.kernel.org/stable/c/09e7f9290d63178f56095d5c18fb9f9470153db5"
        },
        {
          "url": "https://git.kernel.org/stable/c/e42ba56281ca3ae2dcb3558bebee9a1c9a4831d9"
        },
        {
          "url": "https://git.kernel.org/stable/c/00b841bac10230c557be6b38efc48508198fe23e"
        },
        {
          "url": "https://git.kernel.org/stable/c/3d698d1e6c8bc41e3e1707777a016f1bdd07842d"
        },
        {
          "url": "https://git.kernel.org/stable/c/2188569e7e1b0bc3f3b557dc97ab7a02befc11c8"
        }
      ],
      "title": "sctp: fix a TOCTOU race in SCTP_CMD_TIMER_START",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-98130",
    "datePublished": "2026-09-25T10:36:10.243Z",
    "dateReserved": "2026-09-25T10:25:14.318Z",
    "dateUpdated": "2026-10-19T09:14:23.404Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…