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

GHSA-F6Q7-MJ5X-H2PX

Vulnerability from github – Published: 2026-08-10 15:33 – Updated: 2026-08-14 00:31
VLAI
Details

In the Linux kernel, the following vulnerability has been resolved:

xfrm: clear mode callbacks after failed mode setup

xfrm_state_gc_task can run long after a failed IPTFS state setup. In the reproduced case, __xfrm_init_state() cached x->mode_cbs, IPTFS setup returned -ENOMEM before publishing mode_data, and the temporary module reference from xfrm_get_mode_cbs() was dropped immediately. The dead state then kept x->mode_cbs until deferred GC ran after xfrm_iptfs had been unloaded.

Clear x->mode_cbs when mode init or clone fails before publishing mode_data. Those states never installed mode-specific state or the long-term IPTFS module pin, so deferred GC has nothing mode-specific to destroy and must not retain a callback table pointer past the temporary lookup reference.

The buggy scenario involves two paths, with each column showing the order within that path:

failed setup path: 1. cache x->mode_cbs 2. mode setup fails before mode_data 3. drop the temporary module ref 4. dead state keeps x->mode_cbs cached

GC/unload path: 1. xfrm_state_put() queues GC work 2. xfrm_iptfs unloads later 3. xfrm_state_gc_task runs 4. GC dereferences stale x->mode_cbs

This also covers the failed clone path where clone_state() returns before publishing mode_data.

Validation reproduced this kernel report: Kernel panic - not syncing: Fatal exception CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y failslab_stacktrace_filter matched xfrm_iptfs frames ack_error=-12 FAULT_INJECTION: forcing a failure BUG: unable to handle page fault Workqueue: events xfrm_state_gc_task RIP: xfrm_state_gc_task+0x142/0x650 Modules linked in: esp4_offload xfrm_user [last unloaded: xfrm_iptfs] Kernel panic - not syncing: Fatal exception

Show details on source website

{
  "affected": [],
  "aliases": [
    "CVE-2026-68415"
  ],
  "database_specific": {
    "cwe_ids": [],
    "github_reviewed": false,
    "github_reviewed_at": null,
    "nvd_published_at": "2026-08-10T13:20:35Z",
    "severity": "HIGH"
  },
  "details": "In the Linux kernel, the following vulnerability has been resolved:\n\nxfrm: clear mode callbacks after failed mode setup\n\nxfrm_state_gc_task can run long after a failed IPTFS state setup. In the\nreproduced case, __xfrm_init_state() cached x-\u003emode_cbs, IPTFS setup\nreturned -ENOMEM before publishing mode_data, and the temporary module\nreference from xfrm_get_mode_cbs() was dropped immediately. The dead state\nthen kept x-\u003emode_cbs until deferred GC ran after xfrm_iptfs had been\nunloaded.\n\nClear x-\u003emode_cbs when mode init or clone fails before publishing\nmode_data. Those states never installed mode-specific state or the\nlong-term IPTFS module pin, so deferred GC has nothing mode-specific to\ndestroy and must not retain a callback table pointer past the temporary\nlookup reference.\n\nThe buggy scenario involves two paths, with each column showing the order\nwithin that path:\n\nfailed setup path:\n1. cache x-\u003emode_cbs\n2. mode setup fails before mode_data\n3. drop the temporary module ref\n4. dead state keeps x-\u003emode_cbs cached\n\nGC/unload path:\n1. xfrm_state_put() queues GC work\n2. xfrm_iptfs unloads later\n3. xfrm_state_gc_task runs\n4. GC dereferences stale x-\u003emode_cbs\n\nThis also covers the failed clone path where clone_state() returns before\npublishing mode_data.\n\nValidation reproduced this kernel report:\nKernel panic - not syncing: Fatal exception\nCONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y\nfailslab_stacktrace_filter matched xfrm_iptfs frames\nack_error=-12\nFAULT_INJECTION: forcing a failure\nBUG: unable to handle page fault\nWorkqueue: events xfrm_state_gc_task\nRIP: xfrm_state_gc_task+0x142/0x650\nModules linked in: esp4_offload xfrm_user [last unloaded: xfrm_iptfs]\nKernel panic - not syncing: Fatal exception",
  "id": "GHSA-f6q7-mj5x-h2px",
  "modified": "2026-08-14T00:31:58Z",
  "published": "2026-08-10T15:33:50Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-68415"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/2538bd3cd1ff5af655908469544ac7b7ae259386"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/9845a35986a658816f7752f7ebd7c455a4c7dfdf"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/c37a079230128a5237f45fb4e181bc069a5c2955"
    }
  ],
  "schema_version": "1.4.0",
  "severity": [
    {
      "score": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
      "type": "CVSS_V3"
    }
  ]
}



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…