VOID / AI PENTESTING

Void — Open-source AI Pentesting Agent

Connect code repositories, APIs and test environments. Void automatically analyzes attack surfaces, runs testing tools and uses the results to investigate and validate vulnerabilities.

Downloads are not available in this environment.
GitHub
Deep firmware security assessment
Run a deep security assessment of this embedded-device firmware. Prioritize high-risk issues and retain evidence for human review.
Load skill Security assessment workflow

Understood. This assessment starts with offline static analysis of the firmware; no physical device is connected. I will confirm the sample structure and authorization boundary, then split the update chain, system services, debug interfaces, and component communication into parallel tasks.

Shell command ls, file
$ ls -la "analysis/firmware" 2>/dev/null
file "analysis/firmware" 2>/dev/null
component-a.bin
component-b.bin
component-c.bin
header.json

analysis/firmware: directory

Paths and names are aliased; the directory listing shows filename-column excerpts only.

Seven analysis tasks are created and parallel analysis has started. The review follows these areas:

  • Update chain: map software-origin checks, integrity checks, and update entry points.
  • System services: read startup configuration, service definitions, and executable-component information.
  • Interface boundaries: inspect code and configuration for debug capabilities, component calls, and authorization constraints.
Shell command echo, grep, grep
$ S="analysis"
echo "=== component-a build.prop ==="
grep -E "ro.build.tags|ro.build.type|ro.debuggable|ro.build.fingerprint|security_patch|ro.product.device" "$S/containers/component-a/fs_root/build.prop"
echo "=== component-c build.prop ==="
grep -E "ro.build.tags|ro.build.type|ro.debuggable|ro.build.fingerprint|security_patch|ro.product.device" "$S/containers/component-c/fs_root/build.prop"
=== component-a build.prop ===
ro.build.type=userdebug
ro.build.tags=test-keys
ro.product.device=component-a
# ro.build.product is obsolete; use ro.product.device
=== component-c build.prop ===
ro.build.type=userdebug
ro.build.tags=test-keys
ro.product.device=component-c
# ro.build.product is obsolete; use ro.product.device

Paths and names are aliased; output is excerpted, omitting build fingerprints and dates.

Initial inventory is complete, with five attack surfaces registered. The review currently prioritizes the firmware update chain and system services, using offline inspection of the filesystem, startup configuration, and executable components.

Two priority review areas

  • Firmware update chain: trace each update entry point through the code and map coverage of origin and integrity checks.
  • System services: trace declared privileges through startup scripts and service configuration, then inspect maintenance, debugging, and component-call code.
Tool calls 2 items
Shell command r2
$ UP="analysis/containers/component-a/fs_root/bin/update-service"
r2 -2 -q -c 'af @ update_handler; s digest_check; pd 70' "$UP" 2>/dev/null
    add x0, sp, 8
    …
    bl sym.imp.strncmp
    …
┌─< cbz w0, match_branch
│   …
│   bl debug_log
│   mov w21, -1
┌──< b merge_branch
    …

Original instruction excerpts; address and machine-code columns are removed, with symbolic aliases for functions and branch targets.

Shell command cd, openssl, cmp
$ cd "analysis/certificates"
openssl pkcs7 -inform DER -in package/META-INF/CERT.RSA -print_certs 2>/dev/null | openssl x509 -pubkey -noout 2>/dev/null > package-public.pem
openssl x509 -in trust/testkey.x509.pem -pubkey -noout 2>/dev/null > trusted-public.pem
cmp package-public.pem trusted-public.pem && echo "PUBKEY IDENTICAL (CERT.RSA signer == otacert testkey)" || echo "PUBKEY DIFFER"
PUBKEY IDENTICAL (CERT.RSA signer == otacert testkey)

Paths and names are aliased; this is an actual public-key comparison, not a device installation test.

Static review of the update chain found a priority issue: authenticity checks in the code do not cover the full chain. Relevant code and configuration evidence is saved while rollback logic and external-media update entry points are reviewed.

Read file analysis/evidence/update-chain.md
## 详情
**现象**:更新容器内子固件的完整性字段来自 header.json 内的 md5sum;已验证 18 个子文件的摘要与清单一致。
帧内两个 4 字节字段 A/B 并非签名。
**证据(二进制级)**:component-a / component-c 的 update-service 反汇编:
① 无 RSA/cert/SSL 导入符号;
② 整包 MD5 期望值来自同一 TCP 信道的更新请求明文字段;
③ 逐成员 MD5File 失配仅打印日志后循环继续,最终返回成功;
④ 容器解析对字段 A/B 仅步进跳过,从不比较;
⑤ 子固件刷写仅做版本比较,版本字段同为包内自描述。
**缺口**:端到端触发链路与目标引导程序是否另有校验(工件外)。
## 裁决/证据来源
本会话静态分析(灰盒离线)。详见对应裁决与研究证据文件。

Excerpts from the source Finding document with paths, names, and identifying format details replaced; not an edit diff.

F-01 is registered. The static evidence indicates an incomplete chain of origin and integrity checks. The record includes evidence locations, potential impact, and conditions that require device validation.

Next, compare validation policies across entry points and organize differences between external-media updates and the primary update chain.

Static review of system-service and debug configuration is complete. Some maintenance-service and debug code in the sample includes privileged operations; reachability on a physical device still requires validation against startup conditions and release configuration.

Shell command sed
$ R="analysis/containers/component-c/boot/ramdisk"
sed -n '880,915p' "$R/init.rc"
    user root
    group root system

on property:ro.debuggable=1
    start console

# adbd is controlled via property triggers in init.<platform>.usb.rc
service adbd /runtime/sbin/adbd --root_seclabel=u:r:su:s0
    class core
    socket adbd stream 660 system system
    disabled
    seclabel u:r:adbd:s0

# adbd on at boot in emulator
on property:ro.kernel.qemu=1
    start adbd
…

Paths are aliased and output is excerpted; disabled and property-trigger conditions are retained.

The related Findings are registered. They retain capability boundaries indicated by code and configuration, potential impact, and review recommendations, with static evidence accessible from the board.

Static analysis of component communication identified a potential lead: caller-identity constraints on some internal interfaces need further review. The available code evidence does not establish actual reachability or the complete authorization chain, so F-05 remains a lead pending dynamic validation.

Shell command echo, r2, head
$ F="analysis/containers/component-c/fs_root"
for n in service-a update-service service-supervisor; do
  echo "==== $n ===="
  r2 -q -e bin.demangle=false -c "ii~bind;ii~listen;ii~accept;ii~socket;ii~connect;ii~inet" "$F/bin/$n" 2>/dev/null | head -30
done
==== service-a ====
nth bind   type lib name
61  GLOBAL FUNC     net_bind
42  GLOBAL FUNC     net_set_socket_noblock
==== update-service ====
nth bind   type lib name
==== service-supervisor ====
nth bind   type lib name

Paths and service names are aliased; address columns are omitted and empty results are retained.

The component-call summary retains the inspected code paths and unresolved conditions. Offline analysis alone does not establish this lead as a reproduced access-control vulnerability.

Next, consolidate task records and the evidence index, separating static evidence, potential impact, and conditions that still require device validation in the report.

Shell command echo, stat, head
$ R="analysis/session/security-report.md"
echo "exists: $([ -f "$R" ] && echo yes || echo no)"
echo "size: $(stat -f%z "$R" 2>/dev/null)"
echo "first lines:"
head -6 "$R"
exists: yes
size: 8848
first lines:
# 安全挖掘报告:离线固件样本

## 范围

- **目标**:`analysis/firmware`(component-a / component-b / component-c 与 header.json)。
- **授权**:设备自有/书面授权,全面离线逆向;无实体设备,无网络外联,无真实设备动态验证。授权与源材料已写入 run-manifest。

Paths and names are aliased; excerpted output retains the original report's recorded byte count.

Archive complete. All 7/7 offline analysis tasks are complete, with 18 Findings recorded: 4 critical, 7 high, and 7 medium. Fourteen records have completed static review, while four remain pending dynamic validation. No physical-device validation was performed.

Finding summary (5 representative records)

IDSeverityTitle
F-01criticalIncomplete authenticity checks for update packages
F-02criticalRelease build relies on predictable trust material
F-03highExternal-media updates lack sufficient restrictions
F-04highDebug channel exposes system-level operations
F-05mediumInternal service interface lacks explicit access control

The table matches the representative records on the right. Open a Finding to read its impact notes, evidence summary, and remediation guidance.

Human review

  • Update-chain records retain static code, configuration, and certificate evidence for review of validation coverage and trust boundaries.
  • System-service and debug records retain configuration context; reachability and impact still need review against a physical device and its release environment.
  • F-05 is a potential lead with unresolved caller-identity and authorization questions; a conclusion requires dynamic validation.

The final report and evidence index are archived and available in Work artifacts.

Drag horizontally to explore the workspace

Why choose Void?

Automated pentesting
Distills security researchers’ hands-on experience into reusable workflows for asset analysis, protocol-state reasoning, payload generation, vulnerability validation and remediation guidance, reducing repeated trial and error.
Ready to use
Enter an authorized target and Void automatically discovers and validates high-risk vulnerabilities. Run penetration tests without outsourcing to a third party, from analysis through validation.
Black-box & white-box testing
Test targets from the outside or use source code for deeper analysis. Pair Void with SIG Pi to connect to a device test environment in one click.
Finding management & review
Use a visual dashboard to review and manage vulnerabilities, risk levels and human review status across tasks.
Official & custom models
SIGVoid’s selected security models are ready to use out of the box. You can also bring your own API key (BYOK) to connect a compatible model service.

What can you test with Void?

Void is a general-purpose pentesting Agent for in-vehicle infotainment systems, robots, web applications and outbound voice services. Prebuilt expert workflows and domain-specific knowledge bases let you start security testing out of the box.

Compliance testing

Organize checks, run tests and prepare records against applicable requirements of ISO/SAE 21434, UN R155 and GB 44495, alongside your team’s test procedures.

Software testing & code auditing

Analyze application code, dependencies and configuration. Trace call relationships and check authorization, input handling and business logic.

API and service pentesting

Map API and service attack surfaces, then test authentication, access control and data interactions.

Firmware & device security

Analyze firmware, update mechanisms and communication interfaces across robotics, automotive and IoT systems.

Data security testing

Trace how data is collected, transmitted, stored and accessed. Check for exposed sensitive information, unauthorized access and gaps in protection.

Voice application testing

Investigate voice input, processing and command execution for unsafe inputs, permission issues and problems in data handling.

HOW VOID WORKS

How does Void run a penetration test?

Describe your testing goal and the Agent starts analyzing automatically. Check environment connection status and export Findings and vulnerability reports at any time.

01

Connect a target and describe the task

Provide code, APIs or a test environment, and define the authorized scope and testing goal. Void checks connections and identifies entry points and trust boundaries.

02

Let the Agent analyze and validate autonomously

Void autonomously uses tools to analyze attack surfaces, build a system model, explore and discover vulnerabilities, then adjusts its next tests based on the results. Multiple Agents can investigate different tasks in parallel.

03

Review results and investigate further

Review vulnerabilities, risk levels and review status in one workbench. Follow tasks, refine conclusions and continue validating issues that need a closer look.

Large language models selected by SIGVoid for security research

We select reliable models that are well suited to security research. Void-5.3-Flash-Cyber is now available. Download and install Void to connect in one click. Void also supports bring your own key (BYOK) and custom service endpoints, so you can connect to the model of your choice.

GLMQwenDeepSeekKimi
Learn about SIGVoid Cyber

START WITH A TARGET

Start with one authorized target.

Downloads are not available in this environment.
GitHub