
TL;DR
A security researcher found a GitHub personal access token with admin privileges to hundreds of repos baked into Hanwha Vision camera firmware. The cause: a Vite build leaking process.env into production.
A security researcher who goes by hhh downloaded firmware for a Hanwha Vision security camera to poke around and found something alarming: a GitHub personal access token with admin privileges to hundreds of repositories in the company's GitHub organization, baked directly into the camera's web UI. The story landed on the HN front page with 596 points and 191 comments - and the implications ripple far beyond one camera vendor.
The researcher started by downloading a firmware blob from Hanwha's public website. The initial extraction was straightforward - binwalk revealed a tarball with AI-related files and an encrypted fwimage.tgz. Following Matt Brown's existing writeup, the outer decryption passphrase was HTW plus the model number.
But inside that was another encrypted fwimage.tgz using a different scheme. Rather than manually reverse-engineering the decryption logic, hhh handed the fwupgrader binary to Claude Code and went to make dinner. The AI returned a full analysis: Hanwha had XOR-obfuscated the AES key and IV against a static key table in the binary, plus the openssl command fragments were XOR-obfuscated the same way. The key and IV turned out to be hardcoded and shared across the entire camera model line.
Once the rootfs was decrypted, running TruffleHog immediately found a GitHub token duplicated across roughly 30 files. The token had admin access to hundreds of the Hanwha GitHub organization's repositories.
The root cause was mundane but instructive. The camera's web UI is built with Vite, and a build-time variable was set to the entirety of process.env. Every environment variable from the CI job - including GITHUB_NPM_TOKEN with admin-scoped access - was written into the production JavaScript bundle served to anyone who accessed the camera admin interface.
The CI environment also contained several IP addresses assigned to the US Department of Defense, including SWARM_MASTER_NFS_ADDRESS, OTEL_ELASTIC_URL, and CIMIP entries on the 55.101.211.0/24 range. The researcher speculated these could originate from Hanwha's sister companies - Hanwha Aerospace and Hanwha Defense USA - which manufacture the K9 Thunder self-propelled artillery, the SGR-A1 sentry robot, and other defense hardware. If the CI platform is shared across the conglomerate, defense-adjacent infrastructure details could end up in camera firmware by accident.
Newsletter
Get the weekly deep dive
Tutorials on Claude Code, AI agents, and dev tools, delivered free every week.
From the archive
Jul 24, 2026 • 8 min read
Jul 24, 2026 • 7 min read
Jul 24, 2026 • 7 min read
Jul 24, 2026 • 8 min read
The HN discussion split into several threads, each worth examining.
Obfuscation is dead. IshKebab made the sharpest observation about methodology: "LLMs have truly killed obfuscation. It only worked previously by making things extremely tedious but AI doesn't care about that." The researcher used Claude Code to reverse-engineer the firmware decryption while making dinner - a workflow that would have taken a skilled reverse engineer hours of manual Ghidra work even two years ago. This is a recurring theme we have covered in our analysis of AI code attribution and forensics.
Common but not forgivable. Multiple commenters expressed resignation rather than surprise. dev_l1x_be wrote: "Not surprised, many of these vendors are doing crazy things, insane defaults, broken security, hardcoded values. Security is not a priority, I get it, but at the very least some baseline check would be nice." This echoes the sentiment we documented in our supply chain security guide - that basic credential hygiene is still the exception, not the rule.
Network segmentation is the only defense. Several commenters pointed out that the real lesson is architectural. tehlike: "A rule of thumb, put your cameras on a separate VLAN and never give that VLAN internet access." Kim_Bruning echoed: "Never let a cheap networked security camera touch the actual internet." asveikau noted that analog cameras connected to an NVR avoid this entire class of risk.
The DoD angle drew the most attention. grommz: "The US Department of War IP addresses baked into the firmware is the bigger story here." aizk agreed: "I feel this should be making headlines!" The researcher was careful to mark this section as speculation, suggesting the IPs could come from a shared CI platform at parent company level rather than any direct defense contract for the camera division.
This story combines three failure modes that keep showing up in security incidents.
First, CI environment leakage. Setting a Vite variable to process.env means every secret in the CI runner's environment gets serialized into production assets. This is not a Hanwha-specific bug - it is a pattern that shows up whenever build pipelines mix secrets with frontend assets carelessly. We wrote about the broader pattern of supply chain trust boundaries in AI development, and this is a textbook example.
Second, the firmware analysis workflow has changed. The researcher used an AI coding agent to reverse-engineer a proprietary binary decryption scheme in minutes. This is both a defense capability and an attack vector. Security researchers can find vulnerabilities faster, but so can adversaries. We explored this dynamic in our guide to securing AI coding agents.
Third, disclosure worked correctly here. The researcher reported the token to Hanwha's security email and received a response within 12 hours confirming the token was revoked. That is the ideal outcome in an industry where vendors often ignore or dispute researcher reports for months.
The broader lesson is that IoT and embedded device security is not improving fast enough. A camera's admin UI should never contain a GitHub token with admin access to hundreds of repos. A CI environment should never leak into production builds. And organizations that build both defense hardware and security cameras should not share a CI platform without strict tenant isolation.
Read next
Security researchers discovered a prompt injection vulnerability in GitHub's Agentic Workflows that allows attackers to extract private repository contents through public issues.
7 min readA security researcher intercepted Grok Build's network traffic and found it uploads entire repositories - including .env files with secrets - to xAI servers. Here's what the data shows.
6 min readDays after getting caught uploading entire codebases to xAI servers, Grok Build is now open source on GitHub. The HN community isn't convinced it's enough.
6 min readTechnical content at the intersection of AI and development. Building with AI agents, Claude Code, and modern dev tools - then showing you exactly how it works.
CDN, DNS, DDoS protection, and edge computing. Free tier handles most needs. This site uses Cloudflare for DNS and analy...
View ToolLargest MCP server directory with 17,000+ servers. Security grading (A/B/C/F), compatibility scoring, and install config...
View ToolOpen-source cloud sandboxes for AI agents. Isolated environments that start in under 200ms, run code in Python, JavaScri...
View ToolA complete, citation-backed Claude Code course with setup, prompting systems, MCP, CI, security, cost controls, and capstone workflows.
ai-developmentSet up Codex Chronicle on macOS, manage permissions, and understand privacy, security, and troubleshooting.
Getting StartedFull GitHub CLI support for automated PR and issue workflows.
Claude Code
Security researcher discovers TP-Link Kasa cameras exposed precise home coordinates via unauthenticated UDP - a vulnerab...

A unit conversion bug in AWS billing displayed estimated charges of up to $1.7 trillion, triggering widespread alarm amo...

Voice cloning now requires just 3 seconds of audio to impersonate someone. With $893M in reported losses, detection has...

Days after getting caught uploading entire codebases to xAI servers, Grok Build is now open source on GitHub. The HN com...

Security researchers disclosed a Cursor vulnerability that auto-executes malicious git.exe files from repos - after wait...

Open-source tool gives Claude Code, Codex, and other agents their own isolated Linux VM on your machine - network firewa...

New tutorials, open-source projects, and deep dives on coding agents - delivered weekly.