Summary
Keyboard2Shell is an input validation failure in the Human Interface Device class. The operating system accepts keystrokes from any keyboard and executes whatever they spell, without verifying the operator's intent, competence, or blood caffeine level.
In our lab, 4,000 of 4,000 attempts to type whoami returned the name of the person typing. We consider this a full identity disclosure.
Keyboard2Shell is the initial access vector for both Terminal2Shell and sudo2shell. We are upstream of them in the kill chain and would like that reflected in the conference talk order.
Am I affected?
Use our free scanner. No agent, no sales call, no 14-page PDF gated behind your work email.
The scanner counts key presses in your browser. It does not record which keys, and nothing leaves this page. That would be a keylogger, and those have their own website.
Technical details
The USB HID specification defines no authentication, no authorization, and no code review for keystrokes. A device says "I am a keyboard" and the host replies "welcome, please drive." This trust model was last reviewed never.
Root cause
Every key is wired directly to an interrupt. There is no approval workflow, no change advisory board, and no four-eyes principle between Enter and production.
CVSS 3.1 vector
CVSS:3.1/AV:P/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H AV:P Physical. Downgraded by vendor. Upgraded by Bluetooth. AC:L Low. A toddler has a working exploit. So does the cat. PR:N None, if the user "just stepped away for a coffee". UI:R Required. The user is the interaction. Vendor cites this to close the ticket. S:C Changed. Usually from "prod is up" to "prod is down". C/I/A High / High / High / whatever comes after High. Base score: 10.4 (researcher) Base score: 3.1 (vendor: "requires physical access, will not fix") EPSS: 100% (exploited before you finished reading this line)
Proof of concept
We are withholding the full exploit for 90 days out of respect for coordinated disclosure. A partial PoC follows. It is the full exploit.
# Step 1: locate keyboard (hint: under your hands) # Step 2: press keys in the following order victim@laptop:~$ sudo -i [sudo] password for victim: ******** # attacker supplies own password root@laptop:~# id uid=0(root) gid=0(root) groups=0(root) root@laptop:~# # game over. also it's 17:58 on a Friday.
Windows variant: Win+R, cmd, Ctrl+Shift+Enter, then click "Yes". The mouse is a known accomplice and is tracked separately as Mouse2Yes.
A weaponized, fully automated exploit has been sold openly since 2010. It looks like a USB stick and is named after a bath toy.
Affected products
| Product | Status | Notes |
|---|---|---|
| Laptop keyboards | Vulnerable | Attack surface ships attached to the target. Bold. |
| Mechanical keyboards | Vulnerable | Blue switches provide audible intrusion detection for the entire open space. |
| Butterfly keyboards (2015–2019) | Partially mitigated | Vendor shipped a hardware fix: the keys stop working. Rolled back after customer complaints. |
| Touch Bar | Partially mitigated | Removed physical Esc. Vim users were contained inside their sessions for years. |
| On-screen keyboards | Vulnerable | Autocorrect adds integrity loss at no extra ducking cost. |
| Dvorak / Colemak | Vulnerable | Security through obscurity. Also the user will tell you about it. |
| 60% keyboards | Vulnerable | Reduced attack surface. Marketing calls this "hardened". |
| Split ergonomic keyboards | Vulnerable | Segmented, but both halves are in the same trust zone. Classic flat network. |
| RGB keyboards | Vulnerable | +15% exploitation speed (unverified, source: Reddit). |
| Wireless keyboards | Vulnerable | Now exploitable from the meeting room next door. Dongle lost since 2021. |
| Kiosk with a "locked down" keyboard | Vulnerable | Press Shift five times. You know why. |
| Servers with no keyboard attached | Vulnerable | IPMI is a keyboard with an IP address and a default password. |
| AI agents | Vulnerable | Virtual keyboard, real shell, --dangerously-skip-permissions. Keyboard2Shell-as-a-Service. |
| Typewriters | Not affected | Air-gapped. Output is immutable and append-only. The original blockchain. |
| Fax machines | Not affected | Still in production. Still in the compliance policy. |
| Voice assistants | Not affected | See Voice2Shell (domain available, please hurry). |
Threat actors
Attribution is hard, so the industry named everybody four times. Known clusters abusing Keyboard2Shell:
| Tracked as | Also known as | TTPs |
|---|---|---|
| FELINE SPIDER | APT-MEOW · Whiskers Typhoon · UNC-9LIVES | Walks across keyboard during screen share. Sends "jjjjjjjjjjjjj" to the CEO. Shows no remorse. |
| SLEEPY INTERN | Forehead Blizzard · G-zzzz | Face-first denial of service on the space bar. Dwell time: until stand-up. |
| TODDLER PANDA | Sticky Tempest · APT-3 (years old) | Novel key combinations no red team has reproduced. Rotates the screen 90°. Applies jam. |
| REPLY-ALL BEAR | Octo Fwd: Fwd: Re: | Mass-mailer campaign against the whole company. Follow-up wave: "please remove me from this thread". |
| SENIOR ADMIN | Trusted Insider · "I know what I'm doing" | rm -rf with a space in the wrong place. Wrong terminal tab. Friday deploy. |
Indicators of compromise
| Type | Indicator | Confidence |
|---|---|---|
| File | ~/.bash_history exists and is not empty | High |
| Physical | Worn W A S D keys on a "work only" laptop | High |
| Physical | Crumbs. Forensics dates the lower layer to the Windows 7 era. | High |
| Process | vim running for 9 days. User does not know how to exit. | Medium |
| Log | git push --force at 02:14, followed by 40 minutes of silence | High |
| Credential | Post-it on the monitor. Second Post-it with the new one after rotation. | Critical |
| Network | Search query: "how to undo rm -rf" | Too late |
| Behavioral | User typed their password into the Slack channel | High. It was Summer2026! |
| Hash | d41d8cd98f00b204e9800998ecf8427e | It's the MD5 of nothing. Every IoC list has one. |
Mitigations
1. Remove the keyboard
Fully effective. Also resolves 94% of your helpdesk tickets and all of your revenue.
2. Zero Trust Keyboard™
Never trust, always verify. Require MFA on every keystroke. Typing "hello" takes five push approvals; users will approve all of them without looking, which is how you know it's real MFA.
3. Glue the USB ports shut
Included here as a joke. Included in at least one real security policy as a control.
4. Buy KDR (Keystroke Detection & Response)
AI-powered, agentic, next-gen, single pane of glass. Detects keystrokes in real time and generates an alert for each one. Your SOC will tune it to "informational" by Wednesday. Pricing: call us. No, really, we won't tell you otherwise.
5. Security awareness training
A mandatory 45-minute video with a stock-photo hacker in a hoodie, followed by a quiz where the answer is always "report it to IT". Completion rate: 100%. Behavior change: 0%.
6. Go passwordless
Removes the password. Leaves the keyboard. The board will still count it.
7. Accept the risk
Add a line to the risk register, set owner to "IT", set review date to next year. Industry standard since 1868.
Vendor statements
Vendor A: "Works as designed." Vendor B: "Out of scope: requires physical access." Vendor C: "We take the security of our customers very seriously." Vendor D: "Fixed in the Enterprise tier." Bounty: Closed as Informative. Duplicate of #1. −5 reputation. Vendor E: [no response; legal sent a cease and desist to the logo]
CERT alerts around the world
Live advisory status from national teams, refreshed whenever we think of a new joke.
Emergency directive: federal agencies must remove all keyboards by Friday. Agencies request a waiver, typed on a keyboard.
Bulletin published. Notification sent by certified email. A circular follows, then a clarification of the circular. Login requires a digital identity you set up in 2021 and forgot.
Advisory issued by fax. A printed copy must be signed, stamped and filed. QWERTZ confirmed equally affected.
Recommends AZERTY as a compensating control: nobody else can find the keys. Advisory available in French. Only.
Published guidance on reading the guidance. Advises the public to keep calm and carry on typing.
Advisory awaiting translation into 24 official languages. NIS2 reporting clock started 158 years ago; you are late.
Issued a formal apology on behalf of the keyboard. Coordinated with every vendor, on time, politely.
The Essential Eight is now the Essential Nine. Number nine: "no keyboards". Maturity level zero expected nationwide.
Already scanned the whole internet for it and emailed you about your exposed keyboard last Tuesday.
Declines to take a position between QWERTZ and QWERTY. Offers to host the negotiations.
Urges the public to report suspicious typing. Reminds everyone that it would also like a backdoor in the Enter key.
No fingers. Posture considered best in class. Now selling consultancy.
Already informed by sudo2shell. List updated. You know which column.
"Are we affected? Need a slide for the board by 9." Sent from iPhone. On-screen keyboard: affected.
Notify the authorities
Responsible disclosure made easy. Pick your recipients and escalate in one click. Warning: completing this form requires exploiting the vulnerability.
Disclosure timeline
- Typewriter patented. Vulnerable design enters production. No threat model performed.
- QWERTY layout ships. Inefficiency introduced as the first and last rate-limiting control.
- Someone connects a keyboard to a computer. Blast radius upgraded from "paper" to "everything".
- Buckling-spring keyboards add loud audit logging. Feature later removed to cut costs.
- Weaponized exploit sold as a USB gadget. Industry responds with a conference talk.
- BadUSB presented. Everyone agrees it's serious. USB ports remain.
- One vendor ships keys that fail on contact with dust. First real mitigation; recalled.
- Researcher notices keyboard under own hands. Buys domain before writing PoC, as per best practice.
- Logo finished. Vendors contacted. Reply: "That is what a keyboard is."
- 90-day embargo broken by everyone who has ever typed anything.
- Talk accepted at a major conference. 50 minutes. Slide 3 is the logo. Slide 4 is merch.
FAQ
Am I affected?
Do you have a keyboard? Then yes. Do you not have a keyboard? Then how did you search for this page. Yes.
Is it being exploited in the wild?
Roughly 5.4 billion people exploit it daily. Several are doing it in your office right now, some of them on purpose.
Why does it have a name, a logo and a website?
A vulnerability without a domain is just a bug. A bug doesn't get you a keynote.
Is there a patch?
No. Keycaps can be replaced, but that only changes the font of the attack.
Does my EDR detect it?
Your EDR sees a signed process, started by a legitimate user, with valid credentials. It's very happy. It has given the session a low risk score.
Is this covered by ISO 27001 / SOC 2 / NIS2 / DORA?
Yes. Your auditor will ask for a screenshot of the keyboard and a policy stating that keyboards are used "in accordance with business needs". You pass.
Is AI involved?
The investors asked the same thing, so yes. The keyboard is a human-in-the-loop agentic input layer. Please value us accordingly.
How is this different from Terminal2Shell and sudo2shell?
They are post-exploitation. We are initial access. Without us, they are two unreachable binaries. We accept thanks in the form of citations.
Should I panic?
Yes, but schedule it. Thursday has availability. Bring the risk register.
Is this real?
The keyboard is real. The shell is real. The 10.4 is not. This is satire about vulnerabilities with marketing budgets. Lock your screen anyway.