Close Menu
    DevStackTipsDevStackTips
    • Home
    • News & Updates
      1. Tech & Work
      2. View All

      Decoding The SVG path Element: Curve And Arc Commands

      June 23, 2025

      This week in AI dev tools: Gemini 2.5 Pro and Flash GA, GitHub Copilot Spaces, and more (June 20, 2025)

      June 20, 2025

      Gemini 2.5 Pro and Flash are generally available and Gemini 2.5 Flash-Lite preview is announced

      June 19, 2025

      CSS Cascade Layers Vs. BEM Vs. Utility Classes: Specificity Control

      June 19, 2025

      I recommend this Chromebook over many Windows laptops that cost twice as much

      June 23, 2025

      Why I recommend this flagship TCL TV over OLED models that cost more (and don’t regret it)

      June 23, 2025

      Finally, a Lenovo ThinkPad that impressed me in performance, design, and battery life

      June 23, 2025

      3 productivity gadgets I can’t work without (and why they make such a big difference)

      June 23, 2025
    • Development
      1. Algorithms & Data Structures
      2. Artificial Intelligence
      3. Back-End Development
      4. Databases
      5. Front-End Development
      6. Libraries & Frameworks
      7. Machine Learning
      8. Security
      9. Software Engineering
      10. Tools & IDEs
      11. Web Design
      12. Web Development
      13. Web Security
      14. Programming Languages
        • PHP
        • JavaScript
      Featured

      SQL Joins

      June 23, 2025
      Recent

      SQL Joins

      June 23, 2025

      Dividing Collections with Laravel’s splitIn Helper

      June 23, 2025

      PayHere for Laravel

      June 23, 2025
    • Operating Systems
      1. Windows
      2. Linux
      3. macOS
      Featured

      Distribution Release: IPFire 2.29 Core 195

      June 23, 2025
      Recent

      Distribution Release: IPFire 2.29 Core 195

      June 23, 2025

      TeleSculptor – transforms aerial videos and images into Geospatial 3D models

      June 23, 2025

      Rilasciato IceWM 3.8: Gestore di Finestre per il Sistema X

      June 23, 2025
    • Learning Resources
      • Books
      • Cheatsheets
      • Tutorials & Guides
    Home»Security»Common Vulnerabilities and Exposures (CVEs)»CVE-2025-37786 – Linux Kernel DSA Net Use-After-Free Vulnerability

    CVE-2025-37786 – Linux Kernel DSA Net Use-After-Free Vulnerability

    May 1, 2025

    CVE ID : CVE-2025-37786

    Published : May 1, 2025, 2:15 p.m. | 1 hour, 10 minutes ago

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

    net: dsa: free routing table on probe failure

    If complete = true in dsa_tree_setup(), it means that we are the last
    switch of the tree which is successfully probing, and we should be
    setting up all switches from our probe path.

    After “complete” becomes true, dsa_tree_setup_cpu_ports() or any
    subsequent function may fail. If that happens, the entire tree setup is
    in limbo: the first N-1 switches have successfully finished probing
    (doing nothing but having allocated persistent memory in the tree’s
    dst->ports, and maybe dst->rtable), and switch N failed to probe, ending
    the tree setup process before anything is tangible from the user’s PoV.

    If switch N fails to probe, its memory (ports) will be freed and removed
    from dst->ports. However, the dst->rtable elements pointing to its ports,
    as created by dsa_link_touch(), will remain there, and will lead to
    use-after-free if dereferenced.

    If dsa_tree_setup_switches() returns -EPROBE_DEFER, which is entirely
    possible because that is where ds->ops->setup() is, we get a kasan
    report like this:

    ==================================================================
    BUG: KASAN: slab-use-after-free in mv88e6xxx_setup_upstream_port+0x240/0x568
    Read of size 8 at addr ffff000004f56020 by task kworker/u8:3/42

    Call trace:
    __asan_report_load8_noabort+0x20/0x30
    mv88e6xxx_setup_upstream_port+0x240/0x568
    mv88e6xxx_setup+0xebc/0x1eb0
    dsa_register_switch+0x1af4/0x2ae0
    mv88e6xxx_register_switch+0x1b8/0x2a8
    mv88e6xxx_probe+0xc4c/0xf60
    mdio_probe+0x78/0xb8
    really_probe+0x2b8/0x5a8
    __driver_probe_device+0x164/0x298
    driver_probe_device+0x78/0x258
    __device_attach_driver+0x274/0x350

    Allocated by task 42:
    __kasan_kmalloc+0x84/0xa0
    __kmalloc_cache_noprof+0x298/0x490
    dsa_switch_touch_ports+0x174/0x3d8
    dsa_register_switch+0x800/0x2ae0
    mv88e6xxx_register_switch+0x1b8/0x2a8
    mv88e6xxx_probe+0xc4c/0xf60
    mdio_probe+0x78/0xb8
    really_probe+0x2b8/0x5a8
    __driver_probe_device+0x164/0x298
    driver_probe_device+0x78/0x258
    __device_attach_driver+0x274/0x350

    Freed by task 42:
    __kasan_slab_free+0x48/0x68
    kfree+0x138/0x418
    dsa_register_switch+0x2694/0x2ae0
    mv88e6xxx_register_switch+0x1b8/0x2a8
    mv88e6xxx_probe+0xc4c/0xf60
    mdio_probe+0x78/0xb8
    really_probe+0x2b8/0x5a8
    __driver_probe_device+0x164/0x298
    driver_probe_device+0x78/0x258
    __device_attach_driver+0x274/0x350

    The simplest way to fix the bug is to delete the routing table in its
    entirety. dsa_tree_setup_routing_table() has no problem in regenerating
    it even if we deleted links between ports other than those of switch N,
    because dsa_link_touch() first checks whether the port pair already
    exists in dst->rtable, allocating if not.

    The deletion of the routing table in its entirety already exists in
    dsa_tree_teardown(), so refactor that into a function that can also be
    called from the tree setup error path.

    In my analysis of the commit to blame, it is the one which added
    dsa_link elements to dst->rtable. Prior to that, each switch had its own
    ds->rtable which is freed when the switch fails to probe. But the tree
    is potentially persistent memory.

    Severity: 0.0 | NA

    Visit the link for more details, such as CVSS details, affected products, timeline, and more…

    Source: Read More

    Facebook Twitter Reddit Email Copy Link
    Previous ArticleCVE-2025-37783 – Linux Kernel drm/msm Error Pointer Dereference Vulnerability
    Next Article CVE-2025-37782 – Linux HFS slub Out-of-Bounds Write

    Related Posts

    Security

    Canada says Salt Typhoon hacked telecom firm via Cisco flaw

    June 23, 2025
    Security

    Critical Teleport Vulnerability Let Attackers Remotely Bypass Authentication Controls

    June 23, 2025
    Leave A Reply Cancel Reply

    For security, use of Google's reCAPTCHA service is required which is subject to the Google Privacy Policy and Terms of Use.

    Continue Reading

    CVE-2025-27387 – OPPO Clone Phone Weak Password WiFi Hotspot Information Disclosure

    Common Vulnerabilities and Exposures (CVEs)

    Gladinet’s Triofox and CentreStack Under Active Exploitation via Critical RCE Vulnerability

    Development

    Ransomware reaches a record high, but payouts are dwindling

    Development

    A Coding Guide to Unlock mem0 Memory for Anthropic Claude Bot: Enabling Context-Rich Conversations

    Machine Learning

    Highlights

    CVE-2025-49279 – Unfoldwp Blogvy PHP Remote File Inclusion

    June 9, 2025

    CVE ID : CVE-2025-49279

    Published : June 9, 2025, 4:15 p.m. | 25 minutes ago

    Description : Improper Control of Filename for Include/Require Statement in PHP Program (‘PHP Remote File Inclusion’) vulnerability in Unfoldwp Blogvy allows PHP Local File Inclusion. This issue affects Blogvy: from n/a through 1.0.7.

    Severity: 8.1 | HIGH

    Visit the link for more details, such as CVSS details, affected products, timeline, and more…

    CVE-2025-5248 – PHPGurukul Company Visitor Management System SQL Injection Vulnerability

    May 27, 2025

    CVE-2024-48704 – Apache Phpgurukul Medical Card Generation System HTML Injection

    May 23, 2025

    Cyber Brief 25-06 – May 2025

    June 3, 2025
    © DevStackTips 2025. All rights reserved.
    • Contact
    • Privacy Policy

    Type above and press Enter to search. Press Esc to cancel.