CVE-2026-23105 (GCVE-0-2026-23105)
Vulnerability from cvelistv5
Published
2026-02-04 16:08
Modified
2026-08-05 12:20
Summary
In the Linux kernel, the following vulnerability has been resolved: net/sched: qfq: Use cl_is_active to determine whether class is active in qfq_rm_from_ag This is more of a preventive patch to make the code more consistent and to prevent possible exploits that employ child qlen manipulations on qfq. use cl_is_active instead of relying on the child qdisc's qlen to determine class activation.
Impacted products
Vendor Product Version
Linux Linux Version: 462dbc9101acd38e92eda93c0726857517a24bbd
Version: 462dbc9101acd38e92eda93c0726857517a24bbd
Version: 462dbc9101acd38e92eda93c0726857517a24bbd
Version: 462dbc9101acd38e92eda93c0726857517a24bbd
Version: 462dbc9101acd38e92eda93c0726857517a24bbd
Version: 462dbc9101acd38e92eda93c0726857517a24bbd
Version: 462dbc9101acd38e92eda93c0726857517a24bbd
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2026-23105",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "total"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-06-16T20:18:58.725662Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-06-16T20:19:09.986Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "net/sched/sch_qfq.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "fac2c67bb2bb732eae4283e45fc338af7e08c254",
              "status": "affected",
              "version": "462dbc9101acd38e92eda93c0726857517a24bbd",
              "versionType": "git"
            },
            {
              "lessThan": "b8c24cf5268fb3bfb8d16324c3dbb985f698c835",
              "status": "affected",
              "version": "462dbc9101acd38e92eda93c0726857517a24bbd",
              "versionType": "git"
            },
            {
              "lessThan": "f27047abf7cac1b6f90c3ad60de21ef9f717c26d",
              "status": "affected",
              "version": "462dbc9101acd38e92eda93c0726857517a24bbd",
              "versionType": "git"
            },
            {
              "lessThan": "93b8635974fb050c43d07e35e5edfe6e685ca28a",
              "status": "affected",
              "version": "462dbc9101acd38e92eda93c0726857517a24bbd",
              "versionType": "git"
            },
            {
              "lessThan": "abd9fc26ea577561a5ef6241a1b058755ffdad0c",
              "status": "affected",
              "version": "462dbc9101acd38e92eda93c0726857517a24bbd",
              "versionType": "git"
            },
            {
              "lessThan": "77f1afd0bb4d5da95236f6114e6d0dfcde187ff6",
              "status": "affected",
              "version": "462dbc9101acd38e92eda93c0726857517a24bbd",
              "versionType": "git"
            },
            {
              "lessThan": "d837fbee92453fbb829f950c8e7cf76207d73f33",
              "status": "affected",
              "version": "462dbc9101acd38e92eda93c0726857517a24bbd",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "net/sched/sch_qfq.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "3.8"
            },
            {
              "lessThan": "3.8",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.249",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.199",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.162",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.122",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.68",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.8",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.19",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.249",
                  "versionStartIncluding": "3.8",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.199",
                  "versionStartIncluding": "3.8",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.162",
                  "versionStartIncluding": "3.8",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.122",
                  "versionStartIncluding": "3.8",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.68",
                  "versionStartIncluding": "3.8",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.8",
                  "versionStartIncluding": "3.8",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.19",
                  "versionStartIncluding": "3.8",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/sched: qfq: Use cl_is_active to determine whether class is active in qfq_rm_from_ag\n\nThis is more of a preventive patch to make the code more consistent and\nto prevent possible exploits that employ child qlen manipulations on qfq.\nuse cl_is_active instead of relying on the child qdisc\u0027s qlen to determine\nclass activation."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - QFQ qdisc configuration is done via tc/netlink (RTM_NEWQDISC, RTM_NEWTCLASS) which requires local system access through netlink sockets. This is not remotely reachable.\nAC:L - The attacker fully controls the conditions needed to trigger the desync between child qdisc qlen and class active state. As demonstrated in the related commit (c1d73b1480235), an attacker can create two QFQ qdiscs sharing a child qdisc and manipulate packet flow to create the exact state inconsistency needed.\nPR:L - TC/qdisc operations require CAP_NET_ADMIN, which is checked via netlink_net_capable() against the network namespace\u0027s user_ns. An unprivileged user can obtain CAP_NET_ADMIN in a user+network namespace via unshare -Urn.\nUI:N - No user interaction is required. The attacker can set up the QFQ qdiscs, enqueue packets, and trigger the vulnerable code path entirely autonomously.\nS:U - The vulnerability affects the kernel within its own security authority. There is no crossing of security boundaries such as VM escape or IOMMU bypass.\nC:H - The state desync can lead to a use-after-free when a class remains linked to a freed aggregate\u0027s active list (path 2: qlen manipulated to 0 while class is still active, skipping deactivation before aggregate destruction). UAF enables the attacker to control freed object contents and achieve arbitrary memory read.\nI:H - The same use-after-free condition allows heap spraying to replace the freed aggregate structure, giving the attacker arbitrary write primitives and potential control flow hijacking through corrupted function pointers or list operations.\nA:H - Both exploit paths lead to kernel crashes: path 1 causes a NULL pointer dereference in qfq_deactivate_agg/qfq_slot_remove when deactivating an already-inactive aggregate, and path 2\u0027s UAF causes crashes when accessing freed memory. The related commit (c1d73b1480235) demonstrates a concrete kernel panic."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T12:20:17.441Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/fac2c67bb2bb732eae4283e45fc338af7e08c254"
        },
        {
          "url": "https://git.kernel.org/stable/c/b8c24cf5268fb3bfb8d16324c3dbb985f698c835"
        },
        {
          "url": "https://git.kernel.org/stable/c/f27047abf7cac1b6f90c3ad60de21ef9f717c26d"
        },
        {
          "url": "https://git.kernel.org/stable/c/93b8635974fb050c43d07e35e5edfe6e685ca28a"
        },
        {
          "url": "https://git.kernel.org/stable/c/abd9fc26ea577561a5ef6241a1b058755ffdad0c"
        },
        {
          "url": "https://git.kernel.org/stable/c/77f1afd0bb4d5da95236f6114e6d0dfcde187ff6"
        },
        {
          "url": "https://git.kernel.org/stable/c/d837fbee92453fbb829f950c8e7cf76207d73f33"
        }
      ],
      "title": "net/sched: qfq: Use cl_is_active to determine whether class is active in qfq_rm_from_ag",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-23105",
    "datePublished": "2026-02-04T16:08:26.376Z",
    "dateReserved": "2026-01-13T15:37:45.966Z",
    "dateUpdated": "2026-08-05T12:20:17.441Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "vulnrichment": {
      "containers": "{\"adp\": [{\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2026-23105\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"total\"}], \"version\": \"2.0.3\", \"timestamp\": \"2026-06-16T20:18:58.725662Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2026-06-16T20:19:05.902Z\"}}], \"cna\": {\"title\": \"net/sched: qfq: Use cl_is_active to determine whether class is active in qfq_rm_from_ag\", \"metrics\": [{\"cvssV3_1\": {\"version\": \"3.1\", \"baseScore\": 7.8, \"baseSeverity\": \"HIGH\", \"vectorString\": \"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\"}}], \"affected\": [{\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"462dbc9101acd38e92eda93c0726857517a24bbd\", \"lessThan\": \"fac2c67bb2bb732eae4283e45fc338af7e08c254\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"462dbc9101acd38e92eda93c0726857517a24bbd\", \"lessThan\": \"b8c24cf5268fb3bfb8d16324c3dbb985f698c835\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"462dbc9101acd38e92eda93c0726857517a24bbd\", \"lessThan\": \"f27047abf7cac1b6f90c3ad60de21ef9f717c26d\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"462dbc9101acd38e92eda93c0726857517a24bbd\", \"lessThan\": \"93b8635974fb050c43d07e35e5edfe6e685ca28a\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"462dbc9101acd38e92eda93c0726857517a24bbd\", \"lessThan\": \"abd9fc26ea577561a5ef6241a1b058755ffdad0c\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"462dbc9101acd38e92eda93c0726857517a24bbd\", \"lessThan\": \"77f1afd0bb4d5da95236f6114e6d0dfcde187ff6\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"462dbc9101acd38e92eda93c0726857517a24bbd\", \"lessThan\": \"d837fbee92453fbb829f950c8e7cf76207d73f33\", \"versionType\": \"git\"}], \"programFiles\": [\"net/sched/sch_qfq.c\"], \"defaultStatus\": \"unaffected\"}, {\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"3.8\"}, {\"status\": \"unaffected\", \"version\": \"0\", \"lessThan\": \"3.8\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"5.10.249\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.10.*\"}, {\"status\": \"unaffected\", \"version\": \"5.15.199\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.15.*\"}, {\"status\": \"unaffected\", \"version\": \"6.1.162\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.1.*\"}, {\"status\": \"unaffected\", \"version\": \"6.6.122\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.6.*\"}, {\"status\": \"unaffected\", \"version\": \"6.12.68\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.12.*\"}, {\"status\": \"unaffected\", \"version\": \"6.18.8\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.18.*\"}, {\"status\": \"unaffected\", \"version\": \"6.19\", \"versionType\": \"original_commit_for_fix\", \"lessThanOrEqual\": \"*\"}], \"programFiles\": [\"net/sched/sch_qfq.c\"], \"defaultStatus\": \"affected\"}], \"references\": [{\"url\": \"https://git.kernel.org/stable/c/fac2c67bb2bb732eae4283e45fc338af7e08c254\"}, {\"url\": \"https://git.kernel.org/stable/c/b8c24cf5268fb3bfb8d16324c3dbb985f698c835\"}, {\"url\": \"https://git.kernel.org/stable/c/f27047abf7cac1b6f90c3ad60de21ef9f717c26d\"}, {\"url\": \"https://git.kernel.org/stable/c/93b8635974fb050c43d07e35e5edfe6e685ca28a\"}, {\"url\": \"https://git.kernel.org/stable/c/abd9fc26ea577561a5ef6241a1b058755ffdad0c\"}, {\"url\": \"https://git.kernel.org/stable/c/77f1afd0bb4d5da95236f6114e6d0dfcde187ff6\"}, {\"url\": \"https://git.kernel.org/stable/c/d837fbee92453fbb829f950c8e7cf76207d73f33\"}], \"x_generator\": {\"engine\": \"bippy-1.2.0\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\nnet/sched: qfq: Use cl_is_active to determine whether class is active in qfq_rm_from_ag\\n\\nThis is more of a preventive patch to make the code more consistent and\\nto prevent possible exploits that employ child qlen manipulations on qfq.\\nuse cl_is_active instead of relying on the child qdisc\u0027s qlen to determine\\nclass activation.\"}], \"cpeApplicability\": [{\"nodes\": [{\"negate\": false, \"cpeMatch\": [{\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.10.249\", \"versionStartIncluding\": \"3.8\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.15.199\", \"versionStartIncluding\": \"3.8\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.1.162\", \"versionStartIncluding\": \"3.8\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.6.122\", \"versionStartIncluding\": \"3.8\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.12.68\", \"versionStartIncluding\": \"3.8\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.18.8\", \"versionStartIncluding\": \"3.8\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.19\", \"versionStartIncluding\": \"3.8\"}], \"operator\": \"OR\"}]}], \"providerMetadata\": {\"orgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"shortName\": \"Linux\", \"dateUpdated\": \"2026-05-11T22:00:13.122Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2026-23105\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-06-16T20:19:09.986Z\", \"dateReserved\": \"2026-01-13T15:37:45.966Z\", \"assignerOrgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"datePublished\": \"2026-02-04T16:08:26.376Z\", \"assignerShortName\": \"Linux\"}",
      "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…