{"answers":{"affected":"","exploited":"There is no known exploitation of CVE-2026-99166 in the wild and no public exploit code.","fix":"Upgrade to a fixed version.","what":"CVE-2026-99166 is a vulnerability in Linux, published on 28 Oct 2026."},"fix_prompt":"Check this codebase for CVE-2026-99166 and fix it if it is affected.\n\nWhat it is: CVE-2026-99166 is a vulnerability in Linux, published on 28 Oct 2026. \nExploitation: There is no known exploitation of CVE-2026-99166 in the wild and no public exploit code.\n\nAffected product: Linux. No package-level version data is available, so check the vendor advisory linked from the reference page.\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2026-99166/ (Markdown: https://insights.sbomify.com/CVE-2026-99166/index.md)","id":"CVE-2026-99166","markdown":"https://insights.sbomify.com/CVE-2026-99166/index.md","name":"CVE-2026-99166","record":{"aliases":["AZL-111311","BELL-CVE-2026-99166","DEBIAN-CVE-2026-99166","GHSA-6552-7g22-4qf3","UBUNTU-CVE-2026-99166"],"analysis":null,"analysis_generated_by":null,"assigner":"Linux","cpe":[],"cvss":{"score":null,"severity":null,"source":null,"vector":null,"version":null},"cwes":[],"description":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet: rds: fix uninitialized trans dereference in CM event handler\n\nrds_rdma_cm_event_handler_cmn() assigns trans only when the RDMA\ndevice is an InfiniBand CA (RDMA_NODE_IB_CA).  On any other device\ntype, e.g. an iWARP RNIC such as siw, trans stays uninitialized, but\nthe event switch dereferences it: unconditionally in the\nRDMA_CM_EVENT_CONNECT_REQUEST case via trans-\u003ecm_handle_connect(),\nand (with a connection context) in the ROUTE_RESOLVED and\nESTABLISHED cases.\n\nAn RDS listener on an iWARP device therefore crashes the kernel as\nsoon as a connect request arrives: with CONFIG_INIT_STACK_ALL_ZERO\nthe wild load becomes a NULL dereference at offset 0xa0\n(\u0026trans-\u003ecm_handle_connect) in the iw_cm_wq workqueue.\n\nGCC masks the bug in default builds by folding the uninitialized\nload into \u0026rds_ib_transport; Clang-built kernels take the real\nuninitialized path and oops.\n\nThe active side can land on a non-IB device too: the id that\nrds_ib_conn_path_connect() creates is not restricted to a node type,\nso rdma_resolve_addr() binds it to whichever device serves the local\naddress, and an iWARP RNIC on the same netdev qualifies.  The crash\nthere is different: resolving a route on an iWARP id never fills in\ncm_id-\u003eroute.path_rec, and the ROUTE_RESOLVED case writes\npath_rec[0].sl before it calls into the transport.\n\nThe iWARP transport was dropped long ago and IB is the only\ntransport left, so make that explicit: initialize trans to\n\u0026rds_ib_transport at declaration, drop the conditional assignment,\nreject a connect request that arrives on a non-IB device, and drop a\nconnection whose address resolved to one instead of resolving a\nroute on it.  The rejection is limited to RDMA_CM_EVENT_CONNECT_REQUEST\non purpose: a non-zero return from the handler makes rdma_cm destroy\nthe id the event was delivered on, which is right for the request's\nfreshly created id but would free a connection id that RDS still owns\nfor any other event.  On the active side the id stays ic-\u003ei_cm_id and\nthe connection's shutdown destroys it, so that case returns 0.\n\n[achender: reject only on RDMA_CM_EVENT_CONNECT_REQUEST instead of\n bailing out for every event on a non-IB device, so that rdma_cm does\n not destroy connection ids RDS still tracks; drop a connection whose\n address resolved to a non-IB device before a route is resolved on it;\n changelog adjusted]","ecosystems":[],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":0,"refs":[],"tier":"none_known"},"has_fix":true,"headline":"net: rds: fix uninitialized trans dereference in CM event handler","id":"CVE-2026-99166","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":null,"product":null,"products":[],"type":null,"year":"2026"},"n_packages":0,"n_references":3,"next":{"headline":"net/sched: fix use-after-free in __tcf_action_put()","id":"CVE-2026-99167"},"packages":[],"prev":{"headline":"sctp: revalidate output stream after association connect wait","id":"CVE-2026-99165"},"products":["Linux"],"published":"2026-10-28","related":[],"sources":[{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"}],"ssvc":{"automatable":null,"exploitation":null,"technical_impact":null},"state":"PUBLISHED","updated":"2026-10-28","vendors":["Linux"]},"summary":null,"url":"https://insights.sbomify.com/CVE-2026-99166/"}