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

CVE-2026-74687 (GCVE-0-2026-74687)

Vulnerability from cvelistv5 – Published: 2026-08-22 15:32 – Updated: 2026-08-25 05:41
VLAI
Title
watchdog: at91sam9_wdt: prevent timer rearm during teardown
Summary
In the Linux kernel, the following vulnerability has been resolved: watchdog: at91sam9_wdt: prevent timer rearm during teardown at91_ping() rearms the watchdog timer from its callback. timer_delete() neither waits for a running callback nor prevents it from rearming the timer, so probe failure or driver removal can leave the timer accessing the devm-allocated at91wdt after it has been freed. Use timer_shutdown_sync() on both teardown paths. It waits for a running callback and rejects any attempt by the callback to rearm the timer.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 5161b31dc39a6d6dadc95f298de48a725b73ada8 , < 29fe74c9aa69d78c1c6a3930f1d9fc5db71a6eed (git)
Affected: 5161b31dc39a6d6dadc95f298de48a725b73ada8 , < b7949b0a7d998013b7ec8617a0ef5b07cca80be4 (git)
Affected: 5161b31dc39a6d6dadc95f298de48a725b73ada8 , < 8444d66aa6b6e7fe0a26fa1a00a11cb4d0523783 (git)
guessed Create a notification for this product.
Linux Linux Affected: 3.14
Unaffected: 0 , < 3.14 (semver)
Unaffected: 6.18.45 , ≤ 6.18.* (semver)
Unaffected: 7.1.9 , ≤ 7.1.* (semver)
Unaffected: 7.2 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/watchdog/at91sam9_wdt.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "29fe74c9aa69d78c1c6a3930f1d9fc5db71a6eed",
              "status": "affected",
              "version": "5161b31dc39a6d6dadc95f298de48a725b73ada8",
              "versionType": "git"
            },
            {
              "lessThan": "b7949b0a7d998013b7ec8617a0ef5b07cca80be4",
              "status": "affected",
              "version": "5161b31dc39a6d6dadc95f298de48a725b73ada8",
              "versionType": "git"
            },
            {
              "lessThan": "8444d66aa6b6e7fe0a26fa1a00a11cb4d0523783",
              "status": "affected",
              "version": "5161b31dc39a6d6dadc95f298de48a725b73ada8",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/watchdog/at91sam9_wdt.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "3.14"
            },
            {
              "lessThan": "3.14",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.45",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.1.*",
              "status": "unaffected",
              "version": "7.1.9",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.2",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.45",
                  "versionStartIncluding": "3.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1.9",
                  "versionStartIncluding": "3.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2",
                  "versionStartIncluding": "3.14",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nwatchdog: at91sam9_wdt: prevent timer rearm during teardown\n\nat91_ping() rearms the watchdog timer from its callback. timer_delete()\nneither waits for a running callback nor prevents it from rearming the\ntimer, so probe failure or driver removal can leave the timer accessing the\ndevm-allocated at91wdt after it has been freed.\n\nUse timer_shutdown_sync() on both teardown paths. It waits for a running\ncallback and rejects any attempt by the callback to rearm the timer."
        }
      ],
      "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 - The bug is in the AT91SAM9 platform watchdog driver during probe-failure cleanup or driver removal; it is reached only via local kernel/platform actions (boot probe, module load/unload, sysfs bind/unbind), not from network, Bluetooth, or physical USB/serial input paths.\nAC:L - at91_ping() unconditionally re-arms with mod_timer() while timer_delete() neither waits for the callback nor blocks rearm; an attacker who can time teardown or trigger the automatic probe-failure path can reliably race the periodic jiffies callback without uncontrollable layout or victim state.\nPR:L - Per CNA driver timer-teardown UAF precedent, once mod_timer() arms at91_ping() the callback runs autonomously; the UAF is reachable from local probe-failure cleanup or driver-removal activity on AT91 embedded/industrial targets without requiring init-namespace root privileges.\nUI:N - No victim interaction is required; the kernel timer fires on its own schedule and the use-after-free occurs during automatic init-failure teardown or driver removal, independent of opening /dev/watchdog or other user actions.\nS:U - Impact is a kernel heap/timer use-after-free within the host kernel on an embedded AT91 SoC; it does not cross VM, container, or IOMMU security boundaries.\nC:H - The at91_ping() timer callback dereferences freed at91wdt fields (next_heartbeat, wdd, heartbeat, base) after devm release, providing sprayable arbitrary kernel memory disclosure per UAF guidance.\nI:H - Reuse of the freed at91wdt lets at91_wdt_reset() issue MMIO writes through a controlled base pointer and mod_timer() corrupt timer/heap metadata, enabling arbitrary write and control-flow hijack primitives.\nA:H - Use-after-free access from the timer softirq path to freed at91wdt memory causes kernel oops or panic even without deliberate exploitation, and can be repeated by cycling probe/removal against the still-rearming timer."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-25T05:41:31.491Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/29fe74c9aa69d78c1c6a3930f1d9fc5db71a6eed"
        },
        {
          "url": "https://git.kernel.org/stable/c/b7949b0a7d998013b7ec8617a0ef5b07cca80be4"
        },
        {
          "url": "https://git.kernel.org/stable/c/8444d66aa6b6e7fe0a26fa1a00a11cb4d0523783"
        }
      ],
      "title": "watchdog: at91sam9_wdt: prevent timer rearm during teardown",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-74687",
    "datePublished": "2026-08-22T15:32:52.792Z",
    "dateReserved": "2026-08-15T05:44:03.926Z",
    "dateUpdated": "2026-08-25T05:41:31.491Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-74687",
      "date": "2026-09-18",
      "epss": "0.00127",
      "percentile": "0.02733"
    },
    "microsoft_vex": {
      "current_release_date": "2026-08-24T14:51:49.000Z",
      "cve": "CVE-2026-74687",
      "id": "msrc_CVE-2026-74687",
      "initial_release_date": "2026-08-24T01:09:05.000Z",
      "product_status:known_affected": "1",
      "source": "Microsoft CSAF VEX",
      "status": "final",
      "title": "watchdog: at91sam9_wdt: prevent timer rearm during teardown",
      "url": "https://msrc.microsoft.com/csaf/vex/2026/msrc_cve-2026-74687.json",
      "version": "2"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "drivers/watchdog/at91sam9_wdt.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "29fe74c9aa69d78c1c6a3930f1d9fc5db71a6eed",
                    "status": "affected",
                    "version": "5161b31dc39a6d6dadc95f298de48a725b73ada8",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "b7949b0a7d998013b7ec8617a0ef5b07cca80be4",
                    "status": "affected",
                    "version": "5161b31dc39a6d6dadc95f298de48a725b73ada8",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "8444d66aa6b6e7fe0a26fa1a00a11cb4d0523783",
                    "status": "affected",
                    "version": "5161b31dc39a6d6dadc95f298de48a725b73ada8",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "drivers/watchdog/at91sam9_wdt.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "3.14"
                  },
                  {
                    "lessThan": "3.14",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.18.*",
                    "status": "unaffected",
                    "version": "6.18.45",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.1.*",
                    "status": "unaffected",
                    "version": "7.1.9",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "7.2",
                    "versionType": "original_commit_for_fix"
                  }
                ]
              }
            ],
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
          }
        ],
        "cveTags": [],
        "descriptions": [
          {
            "lang": "en",
            "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nwatchdog: at91sam9_wdt: prevent timer rearm during teardown\n\nat91_ping() rearms the watchdog timer from its callback. timer_delete()\nneither waits for a running callback nor prevents it from rearming the\ntimer, so probe failure or driver removal can leave the timer accessing the\ndevm-allocated at91wdt after it has been freed.\n\nUse timer_shutdown_sync() on both teardown paths. It waits for a running\ncallback and rejects any attempt by the callback to rearm the timer."
          }
        ],
        "id": "CVE-2026-74687",
        "lastModified": "2026-08-25T06:18:51.470",
        "metrics": {
          "cvssMetricV31": [
            {
              "cvssData": {
                "attackComplexity": "LOW",
                "attackVector": "LOCAL",
                "availabilityImpact": "HIGH",
                "baseScore": 7.8,
                "baseSeverity": "HIGH",
                "confidentialityImpact": "HIGH",
                "integrityImpact": "HIGH",
                "privilegesRequired": "LOW",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
                "version": "3.1"
              },
              "exploitabilityScore": 1.8,
              "impactScore": 5.9,
              "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
              "type": "Secondary"
            }
          ]
        },
        "published": "2026-08-22T16:16:43.080",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/29fe74c9aa69d78c1c6a3930f1d9fc5db71a6eed"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/8444d66aa6b6e7fe0a26fa1a00a11cb4d0523783"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/b7949b0a7d998013b7ec8617a0ef5b07cca80be4"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Received"
      }
    },
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-08-26T16:25:00+00:00",
      "cve": "CVE-2026-74687",
      "id": "CVE-2026-74687",
      "initial_release_date": "2026-08-22T00:00:00+00:00",
      "product_status:known_not_affected": "274",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: watchdog: at91sam9_wdt: prevent timer rearm during teardown",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-74687.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-09-15T01:16:39Z",
      "cve": "CVE-2026-74687",
      "id": "CVE-2026-74687",
      "initial_release_date": "2026-08-23T00:04:36Z",
      "product_status:known_affected": "353",
      "product_status:known_not_affected": "4",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2026-74687",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-74687.json",
      "version": "6"
    }
  }
}



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…