PkgRadar

Package evidence

esphome==2026.6.0b3

Py Import Time Subprocess: subprocess call — process spawning.

Trust signals

Why this verdict

PkgRadar discounts a release’s score when public reputation argues against novel malware. The verdict above already reflects these — the panel just explains what was applied.

Versions published
589Mature · −50% score
First published
Feb 2019

Effective trust discount applied: 50% (max across signals — discounts don’t stack). New install-lifecycle deltas vs the previous release would clear the discount.

Recommended action

Review before promoting

Mixed signals: the package has indicators worth reading before allowing the update in automated dependency flows.

Block this release in CIcurl · GitHub Actions

Fail the build when this package version is added or upgraded. Replace $PKGRADAR_TOKEN with a Pro / Team API key from your dashboard.

curl -fsS https://pkgradar.com/gate/npm \
  -H "Authorization: Bearer $PKGRADAR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"specs":["esphome==2026.6.0b3"],"fail_on":"review"}'

GitHub Actions step:

- name: PkgRadar gate
  run: |
    curl -fsS https://pkgradar.com/gate/npm \
      -H "Authorization: Bearer ${{ secrets.PKGRADAR_TOKEN }}" \
      -H "Content-Type: application/json" \
      -d '{"specs":["esphome==2026.6.0b3"],"fail_on":"review"}'
Publisherunknown
Artifact bytes4,528,744
Previous versionnone
Published2026-06-16T11:53:21
SHA-2563ef4cd75052f3ffeec421b03f74e152a973662be8d4779db1059161891f18869

Why flagged

What the scanner saw

Py Import Time Subprocess: subprocess call — process spawning.

Not observed: package install, lifecycle script execution, or sandbox execution. PkgRadar only inspects on-disk artifacts.

Availability ledger

available

review
Last checked
reviewRisk
40Score
2026.6.0b3Version
Status history (1 event)
  1. newavailable · risk review · score 40 · status changed

Evidence

Static findings

10 static · 0 from release diff · showing high-signal first.

SeverityKindPathDetailPoints
mediumPy Import Time Subprocessesphome-2026.6.0b3/esphome/analyze_memory/__init__.pysubprocess call — process spawning.32
mediumPy Import Time Subprocessesphome-2026.6.0b3/esphome/components/esp32/__init__.pysubprocess call — process spawning.32
mediumPy Import Time Subprocessesphome-2026.6.0b3/esphome/components/esp8266/__init__.pysubprocess call — process spawning.32
mediumPy Import Time Subprocessesphome-2026.6.0b3/esphome/components/nrf52/__init__.pysubprocess call — process spawning.32
mediumPy Import Time Subprocessesphome-2026.6.0b3/esphome/components/rp2040/__init__.pysubprocess call — process spawning.32
highPy Runtime Base64 Decodeesphome-2026.6.0b3/esphome/dashboard/web_server.pybase64/hex decode combined with exec/subprocess — classic obfuscated payload pattern.30
highPy Import Time Network Callesphome-2026.6.0b3/esphome/components/dashboard_import/__init__.pyNetwork call (urllib/requests/httpx/http.client) at install or import time.16
highPy Import Time Network Callesphome-2026.6.0b3/esphome/components/esp32/__init__.pyNetwork call (urllib/requests/httpx/http.client) at install or import time.16
highPy Import Time Network Callesphome-2026.6.0b3/esphome/components/font/__init__.pyNetwork call (urllib/requests/httpx/http.client) at install or import time.16
Show all 10 findings (low-signal and informational)
SeverityKindPathDetailPoints
mediumPy Import Time Subprocessesphome-2026.6.0b3/esphome/analyze_memory/__init__.pysubprocess call — process spawning.32
mediumPy Import Time Subprocessesphome-2026.6.0b3/esphome/components/esp32/__init__.pysubprocess call — process spawning.32
mediumPy Import Time Subprocessesphome-2026.6.0b3/esphome/components/esp8266/__init__.pysubprocess call — process spawning.32
mediumPy Import Time Subprocessesphome-2026.6.0b3/esphome/components/nrf52/__init__.pysubprocess call — process spawning.32
mediumPy Import Time Subprocessesphome-2026.6.0b3/esphome/components/rp2040/__init__.pysubprocess call — process spawning.32
highPy Runtime Base64 Decodeesphome-2026.6.0b3/esphome/dashboard/web_server.pybase64/hex decode combined with exec/subprocess — classic obfuscated payload pattern.30
highPy Import Time Network Callesphome-2026.6.0b3/esphome/components/dashboard_import/__init__.pyNetwork call (urllib/requests/httpx/http.client) at install or import time.16
highPy Import Time Network Callesphome-2026.6.0b3/esphome/components/esp32/__init__.pyNetwork call (urllib/requests/httpx/http.client) at install or import time.16
highPy Import Time Network Callesphome-2026.6.0b3/esphome/components/font/__init__.pyNetwork call (urllib/requests/httpx/http.client) at install or import time.16
lowPy Import Time Base64 Decodeesphome-2026.6.0b3/esphome/components/api/__init__.pybase64/hex decode in Python source.8