T09 · Insecure Skill Coding Practices
- Location
references/login-flow.md:6- Finding
Public QR Authentication Endpoint Uses Plaintext HTTP
- Content
View full analysis
QR Scanner (NOT camera). Expires in 60 seconds." # 5. After user confirms scan, verify zalo-agent status ``` ### Technical Analysis The documented login process discovers the host's public address through third-party IP lookup services and directs the user to an authentication QR endpoint over unencrypted HTTP. It also states that a firewall port must be publicly reachable. This conflicts with the security claim at `SKILL.md:166` that the QR server is “local-only.” In the documented VPS workflow, the service is intended to be reachable through the server's public IP. Because HTTP provides neither transport encryption nor server authentication, authentication QR content may be exposed to: - A network adversary between the browser and VPS. - A hostile or compromised local network. - An attacker probing the publicly reachable login port. - Infrastructure monitoring or transparent proxies. The external calls to `ifconfig.me` or `ipinfo.io` also disclose that the host is performing an IP lookup, although they do not transmit Zalo credentials. ### Attack Path 1. A user starts `zalo-agent login --qr-url` on an Internet-facing VPS. 2. The QR server becomes reachable on port 18927 or one of its fallback ports. 3. The user opens `http://PUBLIC_IP:18927/qr`. 4. An attacker monitors the plaintext route or discovers and queries the exposed endpoint during the 60-sec ...[truncated 725 chars]- Remediation
View remediation
