registry  /  iobroker.aura  /  0.15.4

iobroker.aura@0.15.4

Modern visualization dashboard for ioBroker

AI Security Review

scanned 6d ago · by lpm-firewall-ai

No confirmed malicious attack surface was established. The package is an ioBroker visualization adapter with runtime admin/dashboard features including proxying, calendar fetches, timers, and adapter controls.

Static reason
No blocking static signals were detected.
Trigger
ioBroker adapter runtime and explicit dashboard/admin user actions
Impact
Expected adapter functionality; no evidence of covert exfiltration, install-time mutation, or payload execution.
Mechanism
user-configured dashboard proxy, calendar fetch, ioBroker state/object operations
Rationale
Static inspection found risky primitives only in package-aligned, user/admin-invoked ioBroker dashboard features, with no lifecycle hook abuse, hard-coded malicious endpoint, credential harvesting, or stealth persistence. The package should be treated as clean despite broad runtime proxy/admin capabilities.
Evidence
package.jsonmain.jslib/webExtension.jsio-package.jsonwww/assets/echarts-Cv-_nZ52.jswww/assets/authStore-Nzp4N1jH.js
Network endpoints4
raw.githubusercontent.com/hdering/ioBroker.aura/main/admin/aura.pngapi.iconify.designapi.simplesvg.comapi.unisvg.com

Decision evidence

public snapshot
AI called this Clean at 88.0% confidence as Benign with low false-positive risk.
Evidence for block
  • main.js exposes user/admin-driven HTTP and WebSocket proxy endpoints for arbitrary http(s)/ws(s) URLs.
  • main.js calendar.request fetches a user-supplied URL and caches returned calendar content.
  • main.js onMessage can restart/upgrade adapters, toggle scripts, and timer logic writes configured ioBroker states.
Evidence against
  • package.json has no preinstall/install/postinstall lifecycle hooks and main is main.js.
  • main.js only starts the ioBroker Aura adapter; no import/install-time exfiltration or persistence found.
  • main.js/lib/webExtension.js proxy logic is dashboard functionality with protocol validation, timeouts, and no hard-coded attacker endpoint.
  • Filesystem routes in main.js are read-only and limited to configured fsRoots; fsAllowWrite defaults false in io-package.json.
  • No child_process, eval/vm, native binary loading, credential harvesting, or AI-agent control-surface writes found in package source.
  • Bundled www assets are frontend dashboard libraries/UI; dynamic-code hits are library/minified patterns, not staged payloads.
Behavioral surface
Source
ChildProcessEvalFilesystemNetwork
Supply chain
HighEntropyStringsMinifiedObfuscatedTelemetryUrlStrings
ManifestNo manifest risk signals triggered.
scanned 40 file(s), 4.02 MB of source, external domains: 192.168.1.x, api.iconify.design, api.simplesvg.com, api.unisvg.com, bit.ly, calendar.google.com, cdn.jsdelivr.net, fb.me, fonts.googleapis.com, github.com, hdering.github.io, leafletjs.com, photon.komoot.io, reactjs.org, redux-toolkit.js.org, redux.js.org, server.arcgisonline.com, smarthjemmet.dk, www.w3.org

Source & flagged code

1 flagged · loading source
www/assets/echarts-Cv-_nZ52.jsView file
39`+g.message)}var n=new it;n.add(a),n.isGeoSVGGraphicRoot=!0;var i=e.width,o=e.height,s=e.viewBoxRect,l=this._boundingRect;if(!l){var u=void 0,f=void 0,v=void 0,h=void 0;if(i!=null?... L40: `+i.message)}return o8(e,n),A(n,function(i){var o=i.name;l8(e,i),f8(e,i);var s=this._specialAreas&&this._specialAreas[o];s&&i.transformTo(s.left,s.top,s.width,s.height)},this),n},r... L41: `))}),t.join(`
Low
Eval

Package source references a known benign dynamic code generation pattern.

www/assets/echarts-Cv-_nZ52.jsView on unpkg · L39

Findings

2 Medium7 Low
MediumNetwork
MediumStructural Risk Force Deep Review
LowScripts Present
LowEvalwww/assets/echarts-Cv-_nZ52.js
LowFilesystem
LowObfuscated
LowHigh Entropy Strings
LowTelemetry
LowUrl Strings