Skip to article
NEONIX · THE DEBRIEF
Issue
003 / August 2026
Published
Read time
15 min
By
Neonix Security

U-Boot parser, TP-Link MR600 V5, and router hygiene

This issue examines two recurring weaknesses at the embedded and operational edge: untrusted data reaching privileged parsers, and management services left reachable with weak controls.

In this edition

A stored same-input run shows the real v2026.07 U-Boot parser crashing while the compared fixed tree exits cleanly. We separate that result from a diagnostic write trace and a deliberately synthetic control-flow test. Neither establishes a production-device exploit. We also examine TP-Link's CVE-2026-8913 advisory for the Archer MR600 V5 and a supplied Neonix firmware comparison showing how the fixed V5 build removes the shell from the WireGuard configuration path. We then examine the multinational AA26-194A router advisory and source-backed July signals from OT and IoT reporting.

U-Boot FIT parsing: reproducing the failure before trust is established

Scope: We did not build a production-device exploit, test third-party systems or prove remote reachability.

On 1 July, Binarly disclosed six memory-safety flaws in Das U-Boot, tracked as BRLY-2026-037 to BRLY-2026-042. U-Boot is widely used across embedded, network and industrial products. The affected code parses FIT (Flattened Image Tree) data while determining which regions should be covered by signature verification.

A malicious FIT must first reach a device's boot or update path, whether through physical access, removable media or a product-specific remote update mechanism. The findings do not imply that every U-Boot device is remotely exploitable.

Root cause — an unchecked parser result

In BRLY-2026-038, fdt_get_name() can fail and return a null name with a negative length. The vulnerable code continues to use both values. The negative length can move a write pointer before its stack buffer; a later node name can then be written below that buffer.

  patch diff — boot/fdt_region.c, fdt_find_regions()
  name = fdt_get_name(fdt, offset, &len);      # can return NULL, len < 0
+ if (!name)                                    # absent in v2026.07
+     return len;
  if (!depth && *name)                          # v2026.07: dereferences NULL
      return -FDT_ERR_BADLAYOUT;
  if (end - path + 2 + len >= path_len)         # negative len skews the bounds check
  strcpy(end, name); end += len;                # -> out-of-bounds write
Release finding
Fixed upstream; stable releases still require a backport
The null-name fix was committed on 13 June. The frozen release receipt records U-Boot v2026.07, released on 6 July, as not containing that fix. It records v2026.10-rc1 as containing the fix, but that tag is a release candidate rather than a stable release. U-Boot schedules the stable v2026.10 release for 5 October. Vendors should assess and backport the commit rather than wait.

What our lab confirmed

The frozen lab record includes a stored run of the real parser at two points — the released v2026.07 and the fixed tree — under AddressSanitizer. The same crafted image behaves differently on each build.

  our lab — same crafted FIT, two builds
# v2026.07 — VULNERABLE
==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000  # READ, zero page
    #0 fdt_find_regions   boot/fdt_region.c:91
    SUMMARY: SEGV in fdt_find_regions            # -> ABORTING

# master — FIXED (identical input)
fdt_find_regions => -11                          # clean, exit 0
Reproduction status
A differential crash and an attributed diagnostic stack-underflow write
The same malformed FIT crashed the real v2026.07 parser while the fixed tree rejected it. In a separate privileged host harness with page zero mapped, a stored AddressSanitizer trace attributes a one-byte stack-underflow write to the real vulnerable function. The corresponding input and vulnerable binary are preserved, but the fixed control transcript for that write was not retained. We therefore treat it as an attributed diagnostic write, not a validated differential primitive. An earlier research note describes a separate hash-region mechanism test. Because that test's executable receipt is not included in the frozen packet, it is not part of the validated lab evidence presented here.

A bounded control-flow demonstration

To test what the recorded write could affect, we built a synthetic verifier-shaped harness with a function pointer deliberately placed immediately before the vulnerable buffer. It was compiled without PIE or stack protection and mapped page zero. A malformed FIT changed the pointer's low bytes and redirected the harness call; the fixed parser rejected the same input.

  synthetic frame around the real parser — malformed v15 FIT
# v2026.07:
verify -> synthetic test callbackcall redirected
# master (identical input):
verify -> benign callback          ●  clean   fdt_find_regions => -11
Bounded result
A stored transcript records an adjacent synthetic pointer redirection
This is internally consistent synthetic transcript evidence, not an independently validated production primitive. It does not reproduce the exact stack frame, mitigations or memory layout of fit_config_check_sig() on a production device. Binarly's original advisory already describes pre-authentication code execution as the potential impact.
Provenance and limits
The vulnerabilities and original impact assessment are Binarly's
Neonix independently reviewed the fixes and release history, reproduced the parser crash in a stored vulnerable-versus-fixed run, recorded an AddressSanitizer trace attributing a one-byte stack-underflow write to the vulnerable parser, and recorded control-flow redirection in a synthetic harness. The write's fixed control was not retained. We did not build a production-device exploit, test third-party systems or prove remote reachability. Device impact depends on configuration, update-path reachability, memory layout and mitigations.

Why this matters for Australia

Australia's consumer smart-device standard commenced on 4 March 2026 for covered products manufactured from that date; it is not retrospective across the existing fleet. The July SOCI material concerning distributed energy resources is consultation material and is not yet law. Enhanced CIRMP requirements apply to specified critical-infrastructure assets and include staged transition periods.

Self-check — forward to whoever owns connected & OT devices
Make firmware and bootloader integrity a procurement question
Ask whether the product uses the affected U-Boot FIT path, which June 2026 fixes have been backported, what paths can supply a boot or update image, and how firmware provenance, rollback protection and support lifetime are verified. Record the answers in product, supply-chain and legacy-technology risk assessments where those obligations apply.

CVE-2026-8913: how the MR600 V5 fix removes the shell

TP-Link's public advisory describes command injection in the Archer MR600 V5 WireGuard client configuration. It requires an authenticated administrative user applying a configuration through the web-management interface. TP-Link names EU_V5_1.7.0 and JP_V5_1.2.0 as fixed builds.

Where configuration data becomes shell syntax

The supplied Neonix write-up compares the vulnerable EU_V5_1.5 build with the fixed EU_V5_1.7.0 build and locates the change in libcmm.so. It reports that oal_wgvpn_genInterfaceConfClient() and oal_wgvpn_genPeerConfClient() generate the WireGuard [Interface] and [Peer] blocks one field at a time. In the vulnerable build, those fields are interpolated into formatted echo commands and passed to util_execSystem().

That helper first materialises the command with vsnprintf() in a 512-byte buffer. It rejects the string only if it contains a semicolon; otherwise it calls system() as root. The flaw is deeper than one omitted character: configuration data crosses an interpreter boundary and is parsed again as shell syntax, where other operators and command-substitution forms still have meaning. An authenticated administrator who can submit a crafted WireGuard configuration can therefore cross from the management plane into commands running with the router process's privileges.

  V5 firmware comparison — remove the shell boundary
# vulnerable V5  field -> formatted echo command -> semicolon-only filter -> system()
# fixed V5       field -> fputs() / fprintf() -> direct file write       -> no shell
Root cause and repair
Remove the command interpreter instead of expanding a blacklist
The fixed V5 generator functions open /var/wireguard/wgclient.conf, write section headings with fputs(), render each field through fixed fprintf() format strings, and close the file. The values must still form a valid WireGuard configuration, but they are no longer fed to a command interpreter.
Attribution and scope
TP-Link confirms the V5 scope and fixed builds
The function-level comparison is attributed to the supplied write-up; we did not independently rebuild the V5 firmware diff for this edition. The vendor-confirmed scope remains specific: Archer MR600 V5, authenticated administrative access and the region-appropriate fixed firmware.
Owner action · Router / remote-access owner
Update affected Archer MR600 V5 devices
Apply TP-Link's region-specific fixed build or later, keep WAN management disabled, use a strong administrator password and restrict the management interface to trusted networks.

When router configuration is the vulnerability

The joint advisory AA26-194A was issued on 13 July by 19 agencies across 13 countries; ASD published its Australian page on 14 July. It describes a campaign attributed to Russia's FSB Center 16, also tracked under names including Berserk Bear, Energetic Bear, Ghost Blizzard and Static Tundra. The campaign spans more than a decade and targets poorly secured network infrastructure.

  the mechanism — no new vulnerability required
1. SCAN  internet SNMP agents answering to a default / weak community string
2. SET   SNMP Set-Request abusing Cisco CISCO-CONFIG-COPY-MIB
3. EXFIL running-config copied out over TFTP to attacker infrastructure

# occasionally paired with:
CVE-2018-0171  # Cisco Smart Install (TCP 4786)
CVE-2008-4128  # added to CISA KEV on 13 July

How an SNMP credential becomes a configuration export

In SNMPv1 and v2c, the community string is effectively a shared bearer credential. A read-only string permits queries; a read-write string also permits state-changing Set requests. With that access, the actor does not need an interactive CLI login. The CISCO-CONFIG-COPY-MIB exposes a job table whose fields select the running configuration as the source, a network file as the destination, TFTP as the transfer protocol, and an external server and filename. Activating the row makes the router initiate the transfer.

The sensitive subtree begins at 1.3.6.1.4.1.9.9.96.1.1; the joint advisory specifically highlights the server-address object at 1.3.6.1.4.1.9.9.96.1.1.1.1.5. This is why a conventional vulnerability scan can miss the condition: the decisive weakness may be a live management protocol plus an over-privileged community string, not a missing patch. Credentialed configuration review or controlled SNMP testing is needed to distinguish read-only exposure from read-write control.

The named sectors — communications, energy, financial services, government (especially state and local), healthcare — overlap with several Australian critical-infrastructure sectors. The advisory names at-risk sectors, not confirmed Australian victims.

Self-check — forward to whoever owns your network
Detect the sequence, then remove the exposed management path
Correlate an inbound SNMP Set request to the config-copy subtree, a server address outside approved management ranges, and a subsequent outbound TFTP flow on UDP 69. Review surviving config-copy rows and device logs, but do not rely on an interactive login event: the router performs the copy itself. Disable Smart Install; move to SNMPv3 authPriv; restrict management protocols with ACLs; protect configuration backups; and replace end-of-life devices. Stolen configurations may contain reusable credentials or weakly protected Cisco password types, extending the impact beyond the first router.

What the rest of July showed in OT and IoT

Drawn from vendor advisories, CISA and named reporting — not our own lab this month.

Risk · Plant floor · CVSS 10.0
A CVSS-10 debug service and grid relays with hardcoded credentials
CISA's July ICS advisories included Rockwell 1715-AENTR (CVE-2026-10577, CVSS 10.0, ICSA-26-195-04): an unauthenticated debug service can expose memory and I/O operations without credentials. CISA also published July guidance for Schneider Easergy MiCOM Px40 protection relays concerning CVE-2026-4832, a hardcoded-credential issue reachable through SNMP. The CVE record itself was published in April, so this is a July advisory update rather than a newly disclosed July vulnerability. The practical lesson is to control management-service reachability, credentials and lifecycle ownership.
Risk · IoT botnet
Aisuru's scale in Arelion's reporting
Arelion's 2026 DDoS report associates Aisuru with more than 500,000 compromised IoT and Android systems and a 31.4 Tbps peak in December 2025. Those are Arelion's measurements, not a census of all compromised systems or global DDoS traffic.
Signal · IoT hygiene
TP-Link Kasa: vendor fact and researcher attribution
TP-Link's advisory for CVE-2026-9770 confirms that affected Kasa EC70 v4 and EC71 v4 firmware contains a hardcoded cryptographic key that can enable local-network interception. Researcher Christopher Childress reports that the affected build used the same RSA private key across devices. We did not reproduce that finding and attribute it accordingly. Owners should verify the hardware revision, install TP-Link's listed fixed build or later, and update the Kasa app. The vendor describes the exposure as local-network rather than internet-remote.
Signal · For the risk meeting
Dragos recorded more ransomware groups and industrial victims
Dragos's 2026 year-in-review counted 119 ransomware groups hitting industrial organisations in 2025 (up from 80), roughly 3,300 victims, with manufacturing representing more than two-thirds. This is a sourced industry-wide measure, not a Neonix census.

Black Hat USA postscript — two talks to follow

Black Hat USA Briefings ran on 5–6 August, after July closed. These are attributed conference results, not Neonix laboratory work.

Black Hat · Network infrastructure
TP-Link Omada zero-touch provisioning is a fleet-scale trust boundary
Forescout Vedere Labs presented Zero-Day Provisioning: Chaining TP-Link ZTP Vulnerabilities for Infiltrating Networks. Its accompanying research reports 15 newly disclosed weaknesses across the Omada provisioning ecosystem and says they can be combined with two previously disclosed command-injection flaws to build network-infiltration scenarios. Owners should use TP-Link's model-specific advisories and downloads to identify applicable updates.
Black Hat · Embedded / EV charging
Rehosting and fuzzing exposed persistence below normal firmware updates
Tobias Scharnowski and Kristian Covic presented Pedal to the Bare Metal: Rehosting and Fuzzing the Tesla Wall Connector to Start a Worm. The speaker's summary describes firmware code execution through the charge port and a boot-ROM secure-boot bypass used for persistence in a controlled demonstration. It also states that the firmware bug had already been fixed when the team learned of that fact after the Pwn2Own submission deadline.

For Australian leaders — this week

Each item is written so it can be assigned to the accountable owner. Regulatory mappings should be applied only where the organisation, asset and transition date are in scope.

  1. 01 Run the router-hygiene sweep (AA26-194A) Disable Cisco Smart Install; move to SNMPv3; block TFTP/SMI/SNMP at the edge; replace end-of-life gear. Owner: Network · ASD E8 — Patch OS / Restrict Admin
  2. 02 Confirm the June U-Boot FIT fixes are backported Ask affected product vendors; do not assume a future upstream release will reach deployed products. Owner: Product / OT
  3. 03 Add firmware & bootloader integrity to procurement Require firmware provenance, rollback protection and a defined support lifetime. Owner: Procurement / Product
  4. 04 Audit OT and router management services Remove weak credentials and unnecessary exposure. For Archer MR600 V5, apply TP-Link's region-specific fixed firmware or later. Owner: OT / Network
  5. 05 Apply smart-device rules only where they are in scope Check the product scope and manufacture date before treating the standard as applicable. Owner: Product / Legal
  6. 06 Map applicable enhanced CIRMP requirements Confirm the applicable critical-asset class, requirement and staged transition date. Owner: Risk / GRC
  7. 07 Track the distributed-energy SOCI proposal Treat the July material as consultation, not an existing fleet-wide obligation. Owner: Legal / GRC

Source-backed figures from this issue

6
U-Boot FIT parser flaws
Binarly · 1 Jul 2026
19 / 13
Agencies / countries
AA26-194A
119
Ransomware groups
Dragos 2025 dataset
3,300
Industrial victim organisations
Dragos 2025 dataset
500K+
Systems associated with Aisuru
Arelion report
31.4
Tbps peak observed
Arelion · Dec 2025

That's Issue 003. The common failure is not that embedded and network devices are inherently unmanageable. It is that parsers, management services and update paths often receive less scrutiny than the applications around them. The U-Boot evidence shows a parser failure before trust is established; the MR600 V5 fix shows the value of removing a shell boundary instead of adding another input filter. AA26-194A shows the operational counterpart: useful access can come from old management paths without a new vulnerability.

— Neonix Security

Primary sources and attribution

The U-Boot vulnerabilities and original impact assessment are Binarly's research. Neonix independently reproduced the parser crash and recorded diagnostic and synthetic observations; we did not demonstrate a production-device exploit. The MR600 V5 implementation comparison is attributed to the supplied Neonix write-up and was not independently rebuilt. No third-party systems were tested.

The Debrief · Neonix Security
Technical security analysis, with evidence.
Reproduction notes, source-backed reporting, and practical actions for Australian security leaders.
Subscribe on LinkedIn →