Cloudanix VulnDB

CVE-2022-34835

Critical · 9.8

CVSS

9.8

EPSS

2.3%

Published

Jun 30, 2022

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Track

A flaw in the bootloader used by many embedded devices lets attackers take full control if they can reach the device's command interface.

Exploit Available
Exploitation
Remote Unauthenticated
Attacker needs
None
Complexity
Low
Impact
Remote Code Execution
Component
Firmware
Class
Memory Corruption
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

Integer signedness error in the i2c md command handler leads to a stack-based buffer overflow that corrupts the return address of do_i2c_md, enabling arbitrary code execution within the bootloader context.

Why it matters to the business

Attackers can achieve remote code execution on embedded devices during boot or console access, potentially compromising firmware integrity, device control, and downstream systems that rely on U-Boot for secure initialization.

How an attack unfolds

An attacker with network or local console access supplies a maliciously crafted i2c md command that triggers the signedness error, overflows the stack buffer, and overwrites the return address to redirect execution to attacker-controlled code.

How to fix it

Upgrade u-boot/u-boot to commit 8f8c04bf1ebbd2f72f1643e7ad9617dafa6e5409 or later; rebuild and redeploy the bootloader image on all affected devices.

How to confirm the fix worked

Verify the running U-Boot binary contains commit 8f8c04bf1ebbd2f72f1643e7ad9617dafa6e5409; attempt to reproduce the original i2c md overflow condition in a test environment and confirm the crash or corruption no longer occurs.

Typical attack path

  1. Identify exposed U-Boot console or i2c interface
  2. Craft input to the i2c md command exploiting the signedness error
  3. Trigger buffer overflow to corrupt return address
  4. Redirect control flow to injected shellcode or ROP chain
  5. Execute arbitrary code in bootloader context

How to detect it

Review bootloader logs and console history for unusual i2c md command invocations; inspect crash dumps or stack traces around the do_i2c_md function for signs of return-address corruption.

What your security team should do

  • Immediately update all U-Boot instances to the fixed commit
  • Restrict console and i2c access to trusted interfaces only
  • Monitor for new U-Boot releases and integrate automated build verification
  • Test boot images in isolated environments before production deployment

The record

In Das U-Boot through 2022.07-rc5, an integer signedness error and resultant stack-based buffer overflow in the "i2c md" command enables the corruption of the return address pointer of the do_i2c_md function.

Affected packages

Ecosystem Package Introduced Fixed
Debian:11 u-boot 0 No fix
Debian:12 u-boot 0 2022.07+dfsg-1
Debian:13 u-boot 0 2022.07+dfsg-1
SUSE:Enterprise Storage 6 u-boot 0 2019.01-150100.7.16.1
SUSE:Enterprise Storage 6 u-boot-rpi3 0 2019.01-150100.7.16.1
SUSE:Enterprise Storage 7 u-boot 0 2020.01-150200.10.15.1
SUSE:Enterprise Storage 7 u-boot-rpiarm64 0 2020.01-150200.10.15.1
SUSE:Linux Enterprise High Performance Computing 15 SP1-ESPOS u-boot 0 2019.01-150100.7.16.1
SUSE:Linux Enterprise High Performance Computing 15 SP1-ESPOS u-boot-rpi3 0 2019.01-150100.7.16.1
SUSE:Linux Enterprise High Performance Computing 15 SP1-LTSS u-boot 0 2019.01-150100.7.16.1
SUSE:Linux Enterprise High Performance Computing 15 SP1-LTSS u-boot-rpi3 0 2019.01-150100.7.16.1
SUSE:Linux Enterprise High Performance Computing 15 SP2-ESPOS u-boot 0 2020.01-150200.10.15.1
SUSE:Linux Enterprise High Performance Computing 15 SP2-ESPOS u-boot-rpiarm64 0 2020.01-150200.10.15.1
SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS u-boot 0 2020.01-150200.10.15.1
SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS u-boot-rpiarm64 0 2020.01-150200.10.15.1
SUSE:Linux Enterprise High Performance Computing 15-ESPOS u-boot 0 2018.03-150000.4.11.1
SUSE:Linux Enterprise High Performance Computing 15-ESPOS u-boot-rpi3 0 2018.03-150000.4.11.1
SUSE:Linux Enterprise High Performance Computing 15-LTSS u-boot 0 2018.03-150000.4.11.1
SUSE:Linux Enterprise High Performance Computing 15-LTSS u-boot-rpi3 0 2018.03-150000.4.11.1
SUSE:Linux Enterprise Module for Basesystem 15 SP3 u-boot 0 2021.01-150300.7.15.1
SUSE:Linux Enterprise Module for Basesystem 15 SP3 u-boot-rpiarm64 0 2021.01-150300.7.15.1
SUSE:Linux Enterprise Module for Basesystem 15 SP4 u-boot 0 2021.10-150400.4.8.1
SUSE:Linux Enterprise Module for Basesystem 15 SP4 u-boot-rpiarm64 0 2021.10-150400.4.8.1
SUSE:Linux Enterprise Server 12 SP4-LTSS u-boot 0 2018.03-4.9.1
SUSE:Linux Enterprise Server 12 SP4-LTSS u-boot-rpi3 0 2018.03-4.9.1
SUSE:Linux Enterprise Server 12 SP5 u-boot 0 2019.01-5.11.1
SUSE:Linux Enterprise Server 12 SP5 u-boot-rpi3 0 2019.01-5.11.1
SUSE:Linux Enterprise Server 15 SP1-BCL u-boot 0 2019.01-150100.7.16.1
SUSE:Linux Enterprise Server 15 SP1-LTSS u-boot 0 2019.01-150100.7.16.1
SUSE:Linux Enterprise Server 15 SP1-LTSS u-boot-rpi3 0 2019.01-150100.7.16.1
SUSE:Linux Enterprise Server 15 SP2-BCL u-boot 0 2020.01-150200.10.15.1
SUSE:Linux Enterprise Server 15 SP2-LTSS u-boot 0 2020.01-150200.10.15.1
SUSE:Linux Enterprise Server 15 SP2-LTSS u-boot-rpiarm64 0 2020.01-150200.10.15.1
SUSE:Linux Enterprise Server 15-LTSS u-boot 0 2018.03-150000.4.11.1
SUSE:Linux Enterprise Server 15-LTSS u-boot-rpi3 0 2018.03-150000.4.11.1
SUSE:Linux Enterprise Server for SAP Applications 12 SP5 u-boot 0 2019.01-5.11.1
SUSE:Linux Enterprise Server for SAP Applications 12 SP5 u-boot-rpi3 0 2019.01-5.11.1
SUSE:Linux Enterprise Server for SAP Applications 15 u-boot 0 2018.03-150000.4.11.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP1 u-boot 0 2019.01-150100.7.16.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP2 u-boot 0 2020.01-150200.10.15.1
SUSE:Manager Proxy 4.1 u-boot 0 2020.01-150200.10.15.1
SUSE:Manager Retail Branch Server 4.1 u-boot 0 2020.01-150200.10.15.1
SUSE:Manager Server 4.1 u-boot 0 2020.01-150200.10.15.1
Ubuntu:16.04:LTS u-boot 0 No fix
Ubuntu:18.04:LTS u-boot 0 2020.10+dfsg-1ubuntu0~18.04.3
Ubuntu:20.04:LTS u-boot 0 2021.01+dfsg-3ubuntu0~20.04.5
Ubuntu:22.04:LTS u-boot 0 2022.01+dfsg-2ubuntu2.3
Ubuntu:Pro:16.04:LTS u-boot 0 No fix
openSUSE:Leap 15.3 u-boot 0 2021.01-150300.7.15.1
openSUSE:Leap 15.3 u-boot-avnetultra96rev1 0 2021.01-150300.7.15.1
openSUSE:Leap 15.3 u-boot-bananapim64 0 2021.01-150300.7.15.1
openSUSE:Leap 15.3 u-boot-dragonboard410c 0 2021.01-150300.7.15.1
openSUSE:Leap 15.3 u-boot-dragonboard820c 0 2021.01-150300.7.15.1
openSUSE:Leap 15.3 u-boot-evb-rk3399 0 2021.01-150300.7.15.1
openSUSE:Leap 15.3 u-boot-firefly-rk3399 0 2021.01-150300.7.15.1
openSUSE:Leap 15.3 u-boot-geekbox 0 2021.01-150300.7.15.1
openSUSE:Leap 15.3 u-boot-hikey 0 2021.01-150300.7.15.1
openSUSE:Leap 15.3 u-boot-khadas-vim 0 2021.01-150300.7.15.1
openSUSE:Leap 15.3 u-boot-khadas-vim2 0 2021.01-150300.7.15.1
openSUSE:Leap 15.3 u-boot-libretech-ac 0 2021.01-150300.7.15.1
openSUSE:Leap 15.3 u-boot-libretech-cc 0 2021.01-150300.7.15.1
openSUSE:Leap 15.3 u-boot-ls1012afrdmqspi 0 2021.01-150300.7.15.1
openSUSE:Leap 15.3 u-boot-mvebudb-88f3720 0 2021.01-150300.7.15.1
openSUSE:Leap 15.3 u-boot-mvebudbarmada8k 0 2021.01-150300.7.15.1
openSUSE:Leap 15.3 u-boot-mvebuespressobin-88f3720 0 2021.01-150300.7.15.1
openSUSE:Leap 15.3 u-boot-mvebumcbin-88f8040 0 2021.01-150300.7.15.1
openSUSE:Leap 15.3 u-boot-nanopia64 0 2021.01-150300.7.15.1
openSUSE:Leap 15.3 u-boot-odroid-c2 0 2021.01-150300.7.15.1
openSUSE:Leap 15.3 u-boot-odroid-c4 0 2021.01-150300.7.15.1
openSUSE:Leap 15.3 u-boot-odroid-n2 0 2021.01-150300.7.15.1
openSUSE:Leap 15.3 u-boot-orangepipc2 0 2021.01-150300.7.15.1
openSUSE:Leap 15.3 u-boot-p2371-2180 0 2021.01-150300.7.15.1
openSUSE:Leap 15.3 u-boot-p2771-0000-500 0 2021.01-150300.7.15.1
openSUSE:Leap 15.3 u-boot-p3450-0000 0 2021.01-150300.7.15.1
openSUSE:Leap 15.3 u-boot-pine64plus 0 2021.01-150300.7.15.1
openSUSE:Leap 15.3 u-boot-pinebook 0 2021.01-150300.7.15.1
openSUSE:Leap 15.3 u-boot-pinebook-pro-rk3399 0 2021.01-150300.7.15.1
openSUSE:Leap 15.3 u-boot-pineh64 0 2021.01-150300.7.15.1
openSUSE:Leap 15.3 u-boot-pinephone 0 2021.01-150300.7.15.1
openSUSE:Leap 15.3 u-boot-poplar 0 2021.01-150300.7.15.1
openSUSE:Leap 15.3 u-boot-rock-pi-4-rk3399 0 2021.01-150300.7.15.1
openSUSE:Leap 15.3 u-boot-rock64-rk3328 0 2021.01-150300.7.15.1
openSUSE:Leap 15.3 u-boot-rock960-rk3399 0 2021.01-150300.7.15.1
openSUSE:Leap 15.3 u-boot-rockpro64-rk3399 0 2021.01-150300.7.15.1
openSUSE:Leap 15.3 u-boot-rpi3 0 2021.01-150300.7.15.1
openSUSE:Leap 15.3 u-boot-rpi4 0 2021.01-150300.7.15.1
openSUSE:Leap 15.3 u-boot-rpiarm64 0 2021.01-150300.7.15.1
openSUSE:Leap 15.3 u-boot-xilinxzynqmpgeneric 0 2020.01-150200.10.15.1
openSUSE:Leap 15.3 u-boot-xilinxzynqmpvirt 0 2021.01-150300.7.15.1
openSUSE:Leap 15.3 u-boot-xilinxzynqmpzcu102rev10 0 2021.01-150300.7.15.1
openSUSE:Leap 15.4 u-boot 0 2021.10-150400.4.8.1
openSUSE:Leap 15.4 u-boot-avnetultra96rev1 0 2021.10-150400.4.8.1
openSUSE:Leap 15.4 u-boot-bananapim64 0 2021.10-150400.4.8.1
openSUSE:Leap 15.4 u-boot-dragonboard410c 0 2021.10-150400.4.8.1
openSUSE:Leap 15.4 u-boot-dragonboard820c 0 2021.10-150400.4.8.1
openSUSE:Leap 15.4 u-boot-evb-rk3399 0 2021.10-150400.4.8.1
openSUSE:Leap 15.4 u-boot-firefly-rk3399 0 2021.10-150400.4.8.1
openSUSE:Leap 15.4 u-boot-geekbox 0 2021.10-150400.4.8.1
openSUSE:Leap 15.4 u-boot-hikey 0 2021.10-150400.4.8.1
openSUSE:Leap 15.4 u-boot-khadas-vim 0 2021.10-150400.4.8.1
openSUSE:Leap 15.4 u-boot-khadas-vim2 0 2021.10-150400.4.8.1
openSUSE:Leap 15.4 u-boot-libretech-ac 0 2021.10-150400.4.8.1
openSUSE:Leap 15.4 u-boot-libretech-cc 0 2021.10-150400.4.8.1
openSUSE:Leap 15.4 u-boot-ls1012afrdmqspi 0 2021.10-150400.4.8.1
openSUSE:Leap 15.4 u-boot-mvebudb-88f3720 0 2021.10-150400.4.8.1
openSUSE:Leap 15.4 u-boot-mvebudbarmada8k 0 2021.10-150400.4.8.1
openSUSE:Leap 15.4 u-boot-mvebuespressobin-88f3720 0 2021.10-150400.4.8.1
openSUSE:Leap 15.4 u-boot-mvebumcbin-88f8040 0 2021.10-150400.4.8.1
openSUSE:Leap 15.4 u-boot-nanopia64 0 2021.10-150400.4.8.1
openSUSE:Leap 15.4 u-boot-odroid-c2 0 2021.10-150400.4.8.1
openSUSE:Leap 15.4 u-boot-odroid-c4 0 2021.10-150400.4.8.1
openSUSE:Leap 15.4 u-boot-odroid-n2 0 2021.10-150400.4.8.1
openSUSE:Leap 15.4 u-boot-orangepipc2 0 2021.10-150400.4.8.1
openSUSE:Leap 15.4 u-boot-p2371-2180 0 2021.10-150400.4.8.1
openSUSE:Leap 15.4 u-boot-p2771-0000-500 0 2021.10-150400.4.8.1
openSUSE:Leap 15.4 u-boot-p3450-0000 0 2021.10-150400.4.8.1
openSUSE:Leap 15.4 u-boot-pine64plus 0 2021.10-150400.4.8.1
openSUSE:Leap 15.4 u-boot-pinebook 0 2021.10-150400.4.8.1
openSUSE:Leap 15.4 u-boot-pinebook-pro-rk3399 0 2021.10-150400.4.8.1
openSUSE:Leap 15.4 u-boot-pineh64 0 2021.10-150400.4.8.1
openSUSE:Leap 15.4 u-boot-pinephone 0 2021.10-150400.4.8.1
openSUSE:Leap 15.4 u-boot-poplar 0 2021.10-150400.4.8.1
openSUSE:Leap 15.4 u-boot-rock-pi-4-rk3399 0 2021.10-150400.4.8.1
openSUSE:Leap 15.4 u-boot-rock-pi-n10-rk3399pro 0 2021.10-150400.4.8.1
openSUSE:Leap 15.4 u-boot-rock64-rk3328 0 2021.10-150400.4.8.1
openSUSE:Leap 15.4 u-boot-rock960-rk3399 0 2021.10-150400.4.8.1
openSUSE:Leap 15.4 u-boot-rockpro64-rk3399 0 2021.10-150400.4.8.1
openSUSE:Leap 15.4 u-boot-rpi3 0 2021.10-150400.4.8.1
openSUSE:Leap 15.4 u-boot-rpi4 0 2021.10-150400.4.8.1
openSUSE:Leap 15.4 u-boot-rpiarm64 0 2021.10-150400.4.8.1
openSUSE:Leap 15.4 u-boot-xilinxzynqmpgeneric 0 2020.01-150200.10.15.1
openSUSE:Leap 15.4 u-boot-xilinxzynqmpvirt 0 2021.10-150400.4.8.1
openSUSE:Leap 15.4 u-boot-xilinxzynqmpzcu102rev10 0 2021.10-150400.4.8.1

Related vulnerabilities