{
  "cveId": "CVE-2022-48814",
  "url": "https://patchblox.com/security/cve/CVE-2022-48814",
  "summary": "CVE-2022-48814 is fixed in linux on 1 platform, first by DEBIAN-CVE-2022-48814, released July 16, 2024. It is not reported as exploited. Patch Radar priority: Routine.",
  "title": "linux: In the Linux kernel, the following vulnerability has been resolved:  net: dsa: seville: register the mdiobus under de...",
  "description": "In the Linux kernel, the following vulnerability has been resolved:  net: dsa: seville: register the mdiobus under devres  As explained in commits: 74b6d7d13307 (\u0022net: dsa: realtek: register the MDIO bus under devres\u0022) 5135e96a3dd2 (\u0022net: dsa: don\u0027t allocate the slave_mii_bus using devres\u0022)  mdiobus_free() will panic when called from devm_mdiobus_free() \u003C- devres_release_all() \u003C- __device_release_driver(), and that mdiobus was not previously unregistered.  The Seville VSC9959 switch is a platform device, so the initial set of constraints that I thought would cause this (I2C or SPI buses which call -\u003Eremove on -\u003Eshutdown) do not apply. But there is one more which applies here.  If the DSA master itself is on a bus that calls -\u003Eremove from -\u003Eshutdown (like dpaa2-eth, which is on the fsl-mc bus), there is a device link between the switch and the DSA master, and device_links_unbind_consumers() will unbind the seville switch driver on shutdown.  So the same treatment must be applied to all DSA switch drivers, which is: either use devres for both the mdiobus allocation and registration, or don\u0027t use devres at all.  The seville driver has a code structure that could accommodate both the mdiobus_unregister and mdiobus_free calls, but it has an external dependency upon mscc_miim_setup() from mdio-mscc-miim.c, which calls devm_mdiobus_alloc_size() on its behalf. So rather than restructuring that, and exporting yet one more symbol mscc_miim_teardown(), let\u0027s work with devres and replace of_mdiobus_register with the devres variant. When we use all-devres, we can ensure that devres doesn\u0027t free a still-registered bus (it either runs both callbacks, or none).",
  "published": "2024-07-16T12:15:05Z",
  "severity": "medium",
  "cvss": 5.5,
  "cvssVector": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H",
  "epss": 0.00271,
  "epssPercentile": 0.19397,
  "priority": "Routine",
  "priorityTier": 4,
  "exploited": false,
  "vendorExploited": false,
  "disclosed": false,
  "fixes": [
    {
      "platform": "linux",
      "product": "linux",
      "release": "Debian 12.15 (bookworm)",
      "fixedVersion": "5.16.10-1",
      "fix": "DEBIAN-CVE-2022-48814",
      "url": "https://patchblox.com/security/fix/linux/debian-cve-2022-48814",
      "released": "2024-07-16T12:15:05Z"
    },
    {
      "platform": "linux",
      "product": "linux",
      "release": "Debian 13.5 (trixie)",
      "fixedVersion": "5.16.10-1",
      "fix": "DEBIAN-CVE-2022-48814",
      "url": "https://patchblox.com/security/fix/linux/debian-cve-2022-48814",
      "released": "2024-07-16T12:15:05Z"
    },
    {
      "platform": "linux",
      "product": "linux",
      "release": "Debian 14",
      "fixedVersion": "5.16.10-1",
      "fix": "DEBIAN-CVE-2022-48814",
      "url": "https://patchblox.com/security/fix/linux/debian-cve-2022-48814",
      "released": "2024-07-16T12:15:05Z"
    }
  ],
  "noFixYet": [],
  "dataAsOf": "2026-11-08T00:53:09Z",
  "attribution": {
    "text": "Data: Patchblox Patch Radar",
    "url": "https://patchblox.com/security/patch-radar",
    "terms": "https://patchblox.com/security/patch-radar/use-the-data"
  }
}