Lunduke
News • Science & Tech
The creator of UNIX built a Trojan Horse which let him log in to any UNIX machine.
And nobody knew about it for years.
May 05, 2024
post photo preview

Back in 1984, the Association for Computing Machinery presented Ken Thompson with a “Turing Award” for his many contributions to the world of computing.

And for good reason.

Ken worked on Multics, co-created UNIX, created multiple programming languages (Bon and B — which directly led to C), co-created the Plan 9 operating system, UTF-8, and on and on.  If anyone deserves an award for advancing computing... it's Ken Thompson.

But we’re not here today to talk about those extraordinary contributions to computing.

No, sir.

We’re here to talk… about his acceptance speech.

Because that speech revealed a truly fascinatin computer virus that Thompson had created years earlier… for the C compiler.  One which gave him a backdoor into UNIX itself.

The Speech

He titled his speech “Reflections on Trusting Trust”, and the basic premise is this:

“To what extent should one trust a statement that a program is free of Trojan horses? Perhaps it is more important to trust the people who wrote the software.”

To prove his point, Ken told the tale of how he had — years earlier — created what was, essentially, a computer virus that infected the C compiler (cc) and the UNIX login program.

Seriously.

This is real.

Ken could gain control of most UNIX systems

It worked, essentially, like this:

Ken modified cc (the C compiler on UNIX systems) so that — only when it was compiling UNIX’s “login” program — it would inject a small “backdoor” (into “login”) that would allow him to log in as any user on the system if he used a predefined “password”.

Which is, obviously, a pretty big security hole.

However…

That sort of "universall password" code would be likely to be found during even a rudimentary code review of the C compiler. Or, heck, even by any casual programmer who happened upon that section of the code.

What Ken did next was… devious.

Hiding his UNIX backdoor

He needed to make sure that, should anyone find his nefarious code in “cc”… that his backdoor would live on.

So he then added functionality to “cc” so that it would detect if it was compiling itself (because the C compiler was compiled… in the C compiler)… and insert code into the compiler that would add… itself.

Which means…

Even if the source code is removed from “cc” project… the code (for adding both the login backdoor and the “keep adding this to the C compiler” bits) would get “invisibly” injected into “cc” every time it got compiled by an already infected build of the compiler.

So… as long as there was an unbroken chain of using the C compiler from that point onward, the UNIX login backdoor was unlikely to be effectively removed.

Brutal.

According to Thompson:

“The actual bug I planted in the compiler would match code in the UNIX "login" command. The replacement code would miscompile the login command so that it would accept either the intended encrypted password or a particular known password. Thus if this code were installed in binary and the binary were used to compile the login command, I could log into that system as any user.”

The Moral of the story

As Ken Thompson put it…

“The moral is obvious. You can't trust code that you did not totally create yourself. (Especially code from companies that employ people like me.) No amount of source-level verification or scrutiny will protect you from using untrusted code. In demonstrating the possibility of this kind of attack, I picked on the C compiler. I could have picked on any program-handling program such as an assembler, a loader, or even hardware microcode. As the level of program gets lower, these bugs will be harder and harder to detect. A well installed microcode bug will be almost impossible to detect.”

Did this make it out into the wild?

I know what you're thinking.  "Is this code still out there?  How many systems were impacted by this?"

What we know: This bit of naughty code was released to at least one machine (used by a UNIX support group). This has been confirmed by Ken, himself.

However, it is believed that the code went no further than that machine.

But... do we know for sure?

Do we actually have a high level of confidence that the modified “cc” and “login” went no further than that support group UNIX box?

No. No, we do not.

In fact, according to Eric S. Raymond

“[I have] heard two separate reports that suggest that the crocked login did make it out of Bell Labs, notably to BBN, and that it enabled at least one late-night login across the network by someone using the login name “kt”.”

BBN.  That's Raytheon.  A critical DARPA researcher -- one which was instrumental in the early days of ARPANET.  A huge amount of software came out of BBN.  Heck, even the first Text Adventure game came from there.

If UNIX machines at Raytheon BBN were infected... the possibility of infected versions of those files making it to other sites is incredibly high.

Truly wild

Which leads to a (rather amusing, and mildly terrifying) bit of historical trivia:

Ken Thompson — one of the co-creators of UNIX — intentionally created a trojan horse that infected both the C compiler and the “login” program of UNIX systems.

What’s more… it went undetected for years.  We wouldn't even have known about it, if he hadn't told us he created it.

And we truly have no clue how widespread that trojan became.

community logo
Join the Lunduke Community
To read more articles like this, sign up and join my community today
22
What else you may like…
Videos
Podcasts
Posts
Articles
Yes, Getting GNOMED is a Thing

gnomed - verb - When installing one piece of software results in the forced install of an entire Desktop Environment.

Example: "I installed a text editor, then my whole system got GNOMED!"

More from The Lunduke Journal:
https://lunduke.com/

00:10:13
January 23, 2026
Xorg's Political Moves Pushes Systems to XLibre

GhostBSD Lead says, "We will release the next release of GhostBSD with XLibre due to the upcoming Xorg rebase."

More from The Lunduke Journal:
https://lunduke.com/

00:16:05
January 22, 2026
KDE Drops Code for FreeBSD Support

The KDE project has removed code to support FreeBSD in their login manager saying, "We rely on systemd/logind, so FreeBSD is not supported."

More from The Lunduke Journal:
https://lunduke.com/

00:10:54
November 22, 2023
The futility of Ad-Blockers

Ads are filling the entirety of the Web -- websites, podcasts, YouTube videos, etc. -- at an increasing rate. Prices for those ad placements are plummeting. Consumers are desperate to use ad-blockers to make the web palatable. Google (and others) are desperate to break and block ad-blockers. All of which results in... more ads and lower pay for creators.

It's a fascinatingly annoying cycle. And there's only one viable way out of it.

Looking for the Podcast RSS feed or other links? Check here:
https://lunduke.locals.com/post/4619051/lunduke-journal-link-central-tm

Give the gift of The Lunduke Journal:
https://lunduke.locals.com/post/4898317/give-the-gift-of-the-lunduke-journal

The futility of Ad-Blockers
November 21, 2023
openSUSE says "No Lunduke allowed!"

Those in power with openSUSE make it clear they will not allow me anywhere near anything related to the openSUSE project. Ever. For any reason.

Well, that settles that, then! Guess I won't be contributing to openSUSE! 🤣

Looking for the Podcast RSS feed or other links?
https://lunduke.locals.com/post/4619051/lunduke-journal-link-central-tm

Give the gift of The Lunduke Journal:
https://lunduke.locals.com/post/4898317/give-the-gift-of-the-lunduke-journal

openSUSE says "No Lunduke allowed!"
September 13, 2023
"Andreas Kling creator of Serenity OS & Ladybird Web Browser" - Lunduke’s Big Tech Show - September 13th, 2023 - Ep 044

This episode is free for all to enjoy and share.

Be sure to subscribe here at Lunduke.Locals.com to get all shows & articles (including interviews with other amazing nerds).

"Andreas Kling creator of Serenity OS & Ladybird Web Browser" - Lunduke’s Big Tech Show - September 13th, 2023 - Ep 044
17 hours ago

Linux Self Host Up and Running with Cloudflare

Making terrific progress moving off of my hosted vps to a linux box in my home. A looming $350 payment for the next three years was the catalyst for “do I need to pay this, is it time to bring this in house”? I already had the Beelink mini pc, and it’s far faster with more ram than my VPS and the electricity costs are minimal and less than the very reasonable $10/mo of that SSDNODES.COM was charging.

I use docker to partition the vps, and now the Linux Mint machine into “many servers”. When I want to share my work outside my home, that’s where Cloudflare tunnels come in. Exposing ports whether on the vps or on my home router and linux machine is asking for trouble. Cloudflare handles that and more:
Here is the compact definition of what Cloudflare Tunnels provides for your partitioned setup:

  • Inversion of Ingress: Eliminates the need for dangerous port forwarding by establishing a secure outbound connection from your server to the...
post photo preview
January 23, 2026

Migrated SqlServer off my hosted VPS to local Linux

Life is SO much easier with AI agents. Made relatively quick work of taking my SqlServer that ran in a docker container from my hosted vps to my local linux.

After I ssh'd into my vps, and had Warp make a plan and execute taking the sql server container off line and backing up the volume - I copied the files home with FileZilla. Like a neanderthal, I actually did that work myself.

Then I prompted Warp:

In this dir are two files, a docker compose file and a docker volume backup. These come from my hosted ssdnodes.com vps. Your task is to migrate these to this machine. ~/docker-containers/sqlserver is where they should live on this computer. Let me know if you understand the task. Make a plan and get my approval before acting.

And Voila! Warp made a plan, executed it, and I was able to login and see my data which is now local.

You can see the highlights of all the steps that warp took here: ...

post photo preview
January 23, 2026

The main difference between chatting with ChatGPT/Claude and AI agents - is that agents can act.

Here's a short video walkthrough where I used the Warp terminal's agent feature to download and burn Linux Mint to a thumbdrive.

I could have asked ChatGPT, been given the command, copy and paste them into my mac. If an error happens, copy/paste back into ChatGPT. And while that workflow has been very useful - just telling the agent "come up with a plan, then execute the plan" and it does the work - is WAY cooler.

https://app.screencast.com/b6FopLg07IXcl

January 16, 2026
Lunduke Journal Week In Review - Jan 16th, 2025

Whew! It’s been another wild week for Tech News!

Here’s a crazy stat for ya:

We are currently 16 days into 2026, and The Lunduke Journal has already recorded 19 shows (17 of which have been published on every platform, and 2 others to be published this weekend everywhere… but are already available via the MP4 download page). And that’s with taking New Year’s Day off (and getting the flu this week).

It’s a heck of a lot of Tech News, to be sure.

Lunduke’s Top Stories for the Week

If you only have time to watch a few of shows, I recommend these 3 as being the most interesting (or important… or just… strange) from the last week:

In other words: A pretty gosh-darned crazy week for Linux.

(Those links are to Lunduke.Substack.com, but you can watch all of those shows on any other platform. As always.)

Other Tidbits of Awesomeness

A few other notes on this, most excellent, Friday!

And, with that, I leave you with a screenshot of the MP4 listing of the shows so far in 2026. Bonkers.

 

-Lunduke

Read full Article
January 14, 2026
Lunduke's Lifetime Subscriber Wall 3 is almost full!

Holy moly.

This afternoon I sat down to update the 3rd Lunduke Journal Lifetime Subscriber wall — adding in all of you who sent in requests over the last week or so.

And, boy howdy, were there a lot of you! So many, in fact, that the 3rd Lifetime Wall only has room for around 6 or 7 more names (depending on the name lengths)! That’s crazy!

If you want to make it onto “The Lunduke Journal Lifetime Subscriber” Wall number 3… send me an email (bryan at lunduke.com) with the way you would like your name to be displayed.

Or, if you’re not already a Lifetime Subscriber, remedy that for $89. (Which, you know, is a pretty gosh darned good value.) … Then send me that email requesting to be added to the wall.

Once Wall 3 is full, we’ll start in on Wall number 4 (that’s nuts). At the current rate, I expect Wall 4 to debut this week.

And, as always, thank you for your support. Whatever kind of subscription you have, it is deeply appreciated. Monthly, Yearly, or Lifetime. All are amazing. You make The Lunduke Journal possible.

You rule.

-Lunduke

 
Read full Article
January 13, 2026
Lunduke Out Sick Tomorrow

I’ve got the flu (or something else yucky) and need to take the day off tomorrow.

But I don’t really have a normal “boss” to email. Heck, all of you are sort of like my collective boss.

So I’m emailing you:

Boss, *cough cough* Lunduke is out sick tomorrow.

Which means no new shows on Wednesday. Hoping to rest up and be back with new shows on Thursday.

If you’ve missed any shows over the last few weeks, now’s a good chance to catch up.

And feel free to grab one of those fancy-shmancy $89 Lifetime Subscriptions while you’re at it. That won’t make my flu go away any faster… but it definitely won’t hurt.

Unrelated note: Buying stock in Nyquil might not be a bad idea. I think I’m about to increase their profits.

-Lunduke

Read full Article
See More
Available on mobile and TV devices
google store google store app store app store
google store google store app tv store app tv store amazon store amazon store roku store roku store
Powered by Locals