Skip to content
Heist/ feed
Unrated

uprobes/x86: Move optimized uprobe from nop5 to nop10

Type: advisorySource: Official CVE List1 source record

In the Linux kernel, the following vulnerability has been resolved: uprobes/x86: Move optimized uprobe from nop5 to nop10 Andrii reported an issue with optimized uprobes [1] that can clobber redzone area with call instruction storing return address on stack where user code may keep temporary data without adjusting rsp. Fixing this by moving the optimized uprobes on top of 10-bytes nop instruction, so we can squeeze another instruction to escape the redzone area before doing the call, like: lea -0x80(%rsp), %rsp call tramp Note the lea instruction is used to adjust the rsp register without changing the flags. We use nop10 and following transformation to optimized instructions above and back as suggested by Peterz [2]. Optimize path (int3_update_optimize): 1) Initial state after set_swbp() installed the uprobe: cc 2e 0f 1f 84 00 00 00 00 00 From offset 0 this is INT3 followed by the tail of the original 10-byte NOP. After a previous unoptimization bytes 5..9 may still contain the old call instruction, which remains valid for threads already there. 2) Rewrite the LEA tail and call displacement: cc [8d 64 24 80 e8 d0 d1 d2 d3] From offset 0 this traps on the uprobe INT3. Bytes 1..9 are not executable entry points while byte 0 is trapped. 3) Publish the first LEA byte: [48] 8d 64 24 80 e8 d0 d1 d2 d3 From offset 0 this is: lea -0x80(%rsp), %rsp call Unoptimize path (int3_update_unoptimize): 1) Initial optimized state: 48 8d 64 24 80 e8 d0 d1 d2 d3 Same as 3) above. 2) Trap new ent

Announced Source revision 1
Original source ↗

CVE-2026-93164

Primary source · Revision 1

Imported from structured advisory data. Source references identify upstream records or fields; verify affected versions and your deployed configuration.

Security context

Source reference: cve:CVE-2026-93164

Linux

Source reference: /containers/cna/affected/0/product

Affected versions
Not stated in this record
Fixed versions
Not stated in this record
Prerequisites
Not stated in this record

Linux

Source reference: /containers/cna/affected/1/product

Affected versions
Not stated in this record
Fixed versions
Not stated in this record
Prerequisites
Not stated in this record

Structured affected-version data

Original package identities and version rules from this source.

[
  {
    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
    "vendor": "Linux",
    "product": "Linux",
    "versions": [
      {
        "status": "affected",
        "version": "ba2bfc97b4629b10bd8d02b36e04f3932a04cac4",
        "lessThan": "7abc9b49ad01a179e893ba137364a560e21b09f8",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "ba2bfc97b4629b10bd8d02b36e04f3932a04cac4",
        "lessThan": "1b3fecd09910040668b752f3377d7218ca5c59ac",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "ba2bfc97b4629b10bd8d02b36e04f3932a04cac4",
        "lessThan": "554ba38456dad8053a1a80afe6ae6da9eff745cc",
        "versionType": "git"
      }
    ],
    "programFiles": [
      "arch/x86/kernel/uprobes.c"
    ],
    "defaultStatus": "unaffected"
  },
  {
    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
    "vendor": "Linux",
    "product": "Linux",
    "versions": [
      {
        "status": "affected",
        "version": "6.18"
      },
      {
        "status": "unaffected",
        "version": "0",
        "lessThan": "6.18",
        "versionType": "semver"
      },
      {
        "status": "unaffected",
        "version": "6.18.57",
        "versionType": "semver",
        "lessThanOrEqual": "6.18.*"
      },
      {
        "status": "unaffected",
        "version": "7.2.6",
        "versionType": "semver",
        "lessThanOrEqual": "7.2.*"
      },
      {
        "status": "unaffected",
        "version": "7.3",
        "versionType": "original_commit_for_fix",
        "lessThanOrEqual": "*"
      }
    ],
    "programFiles": [
      "arch/x86/kernel/uprobes.c"
    ],
    "defaultStatus": "affected"
  }
]
Related CVEs
CVE-2026-93164

Source reference: /cveMetadata/cveId

Publisher severity

No explicit severity was provided.

Event
#37880 · Revision 1
Added to Heist Feed
Publisher date
Read the original announcement