Notepad++ Hijacked by State-Sponsored Hackers (notepad-plus-plus.org)
from who@feddit.org to programming@programming.dev on 02 Feb 06:41
https://feddit.org/post/25214348

#programming

threaded - newest

9tr6gyp3@lemmy.world on 02 Feb 07:22 next collapse

How many times has this happened to Notepad++ now?

pdxfed@lemmy.world on 02 Feb 07:33 next collapse

“The exact technical mechanism remains under investigation, though the compromise occured at the hosting provider level rather than through vulnerabilities in Notepad++ code itself. Traffic from certain targeted users was selectively redirected to attacker-controlled served malicious update manifests.”

Fuckall they could really have done about it other than changing host providers, which they mentioned they already have as a result.

Lojcs@piefed.social on 02 Feb 09:39 next collapse

Sign the updates before uploading them so they can’t be faked?

yetAnotherUser@discuss.tchncs.de on 02 Feb 14:13 collapse

It’s astounding this wasn’t done years sooner to be honest. I mean, signing software with keys is not something invented recently. Not doing so is akin to storing passwords in plain text.

9tr6gyp3@lemmy.world on 02 Feb 16:21 next collapse

I think they want to, but Microsoft has made it expensive for open source developers who do this as a hobby and not as a job to sign their software. I know not too long ago, this particular dev was asking its users to install a root certificate on their PC so that they wouldn’t have to deal with Microsofts method of signing software, but that kind of backfired on them.

TeamAssimilation@infosec.pub on 02 Feb 16:35 next collapse

Let’s Encrypt is a trusted, established alternative, it could replace Microsoft for long-lived software certificates.

Or tarnish its name associating it with malware and bad actors, who knows?

Luminous5481@anarchist.nexus on 02 Feb 16:58 collapse

Let’s Encrypt is a trusted, established alternative, it could replace Microsoft for long-lived software certificates.

Uh, no it could not.

First of all, the whole point of signing software is to ensure it comes from a reputable source. Let’s Encrypt signs certificates with an automated process that does no verification whatsoever of the identity of the person asking for a certificate. It would make the whole process completely pointless.

Second, Let’s Encrypt has stated themselves over a decade ago that they have no intention of doing this because it would render the whole system pointless.

piccolo@sh.itjust.works on 02 Feb 18:00 collapse

The point of signing software is to ensure the software was not tampered from the publisher. Linux package managers solve this by comparing a gpg key from the publisher with the software’s. There is no need for a corporate giant to “vet” software.

sukhmel@programming.dev on 03 Feb 09:07 collapse

I guess, the point was there’s nothing doing that in windows, and you will have to check manually or use an expensive M$ certificate

yetAnotherUser@discuss.tchncs.de on 02 Feb 18:15 collapse

Yes, but from what I understand this refers to the automatic update functionality and not Microsoft’s own .exe signature verification thing.

Couldn’t you do it like this:

  • Put hardcoded key into N++
  • If a new release is available: Download, then verify signature
  • If the signatures match, do whatever Windows requires to install an update

That should work, shouldn’t it?

9tr6gyp3@lemmy.world on 02 Feb 18:52 collapse

No, because you wouldn’t be able to execute the updated exe without a valid signature. You would essentially brick the install with that method, and probably upset Microsoft’s security software in the process.

stephen01king@piefed.zip on 02 Feb 19:29 next collapse

How are they doing it now, then?

9tr6gyp3@lemmy.world on 02 Feb 23:19 collapse

The answer to that question is honestly super complicated, and it has its own job title tbh. Managing code signing certificates can be really complex depending on the software.

This gist kinda covers the basics

gist.github.com/…/e8f67fb39a35abdbf4ad26711c5957c…

stephen01king@piefed.zip on 02 Feb 23:32 collapse

No, I meant how are Notepad++ people doing it currently when people claim they aren’t already signing their exe?

9tr6gyp3@lemmy.world on 03 Feb 00:02 collapse

Im not sure. I don’t have Windows to look at the code signing certificate they are using (if they are using one at all). Hopefully someone else can check and let us know.

yetAnotherUser@discuss.tchncs.de on 02 Feb 20:04 collapse

I meant the old .exe would check the signatures before initializing the official Windows way to update. Effectively have this run whenever you start the application:

main() {
    if (update_available()) {
        exe_path = download_update()
        if (signature(exe_path) == SIGNATURE) {
            install_update(exe_path)
            restart()
        } else {
            put_up_a_warning_or_something()
            delete(exe_path)
        }
    }
# Rest of the application
# ...
}

The only thing I have no idea how to implement would be the install_update(path) function. But surely this is one way to install updates without signatures recognized by Microsoft, right?

And if for some reason you aren’t allowed to sign the .exe because this breaks something, then place an unsigned .exe in a signed zip folder.

9tr6gyp3@lemmy.world on 02 Feb 22:33 collapse

After you install the update, which exe will you execute after the app restarts?

yetAnotherUser@discuss.tchncs.de on 02 Feb 22:55 collapse

I don’t know enough about Windows app development to answer this. Maybe it replaces the old .exe and the now replaced .exe is just continuing to run from RAM? Maybe there is some restarter.exe program in the same folder that does all the work. In any case, this depends far too much on the Windows update process and how to launch applications.

I just know when I used Windows applications in the past, they were able to restart themselves after updating somehow.

9tr6gyp3@lemmy.world on 02 Feb 23:29 collapse

After an update on Windows, you must close the application to clear the RAM before launching the updated exe.

Upon launching the new binary exe, Microsoft will check the code signing certificate and make sure its valid before letting it execute. If its not signed, you will be met with a warning that the binary publisher is unknown, and I believe that Microsoft won’t even let it launch nowadays

pupbiru@aussie.zone on 02 Feb 23:55 collapse

that’s all completely irrelevant…, there is already an update mechanism built into NPP: that’s the entire point of the attack… it’s this update mechanism that got hijacked

9tr6gyp3@lemmy.world on 02 Feb 23:59 collapse

If Notepad++ had a valid signing certificate, you wouldn’t be able to run the malicious binary in the update. How is that not relevant?

pupbiru@aussie.zone on 03 Feb 00:04 collapse

there are more ways to do signing than paying microsoft boat loads of money… just check a gpg sig file ffs (probably using detached signatures: again, it’s already built into existing tools and it’s a well-known, easily solved problem)

what’s irrelevant is the argument about how the auto update mechanism would work because it already exists

9tr6gyp3@lemmy.world on 03 Feb 00:11 collapse

The gpg sig method works great on other operating systems that aren’t Windows or MacOS, but Windows and MacOS do not use that method to verify the authenticity of developer’s certificates.

The update mechanism works fine, but you will not be able to execute the binary on a Windows or MacOS system. The OS will not allow it to run without it being signed.

The malicious actor would not be able to drag and drop their malware in without the Notepad++ certificate. The signature wouldn’t match.

The certificate is not only doing authentication of the developer, but it is also doubling as an integrity check to make sure the code hasn’t been modified.

pupbiru@aussie.zone on 03 Feb 00:17 collapse

Windows and MacOS do not use that method to verify the authenticity of developer’s certificates.

completely irrelevant… software authenticity doesn’t have to be provided by your OS… this is an update mechanism that’s built into the software itself. a GPG signature like this would have prevented the hack

The update mechanism works fine, but you will not be able to execute the binary on a Windows or MacOS system

that’s what we’re saying: this update mechanism already exists, and seems to install unsigned software. that’s the entire point of this hack… the technical how it works is irrelevant

9tr6gyp3@lemmy.world on 03 Feb 00:20 collapse

Agreed.

If the updates were signed, then the malicious actor could not push their own updates. It would fail authentication and integrity checks.

pupbiru@aussie.zone on 03 Feb 00:27 collapse

yes but as you yourself said

I think they want to, but Microsoft has made it expensive for open source developers who do this as a hobby and not as a job to sign their software. I know not too long ago, this particular dev was asking its users to install a root certificate on their PC so that they wouldn’t have to deal with Microsofts method of signing software, but that kind of backfired on them.

the part that we’re arguing against isn’t that a microsoft signing key would have fixed the problem, it’s

No, because you wouldn’t be able to execute the updated exe without a valid signature. You would essentially brick the install with that method, and probably upset Microsoft’s security software in the process.

this update mechanism already exists: it’s the reason the hijack was possible. whatever the technical process behind the scenes is irrelevant… that is how it currently works; it’s not a “what if”

adding signing into that existing process without any 3rd party involvement is both free, and very very easy

which is why this is a solved (for free) problem on linux

9tr6gyp3@lemmy.world on 03 Feb 00:33 collapse

the part that we’re arguing against isn’t that a microsoft signing key would have fixed the problem, it’s

I didn’t say a Microsoft signing key is required. Im saying Microsoft requires that you go out and obtain a signed certificate that proves your identity as a developer.

this update mechanism already exists: it’s the reason the hijack was possible. whatever the technical process behind the scenes is irrelevant… that is how it currently works; it’s not a “what if”

The update mechanism was successful hijacked because integrity checks and authentication checks were not properly in place. Notepad++ even said that they moved hosting providers after this happened to them.

Per rapid7.com/…/tr-chrysalis-backdoor-dive-into-lotu…

adding signing into that existing process without any 3rd party involvement is both free, and very very easy

Can you point out an existing open source application that runs on Windows that only uses GPG signatures?

pupbiru@aussie.zone on 03 Feb 07:46 collapse

saying Microsoft requires that you go out and obtain a signed certificate that proves your identity as a developer

clearly that’s not the case if this was exploitable… again, N++ has an auto update mechanism that they current use. if they used a microsoft signing key to sign a builds hash, this hijack would not be possible

thus they have an update mechanism that works around microsoft signing… how is irrelevant. that is the current state of the software

The update mechanism was successful hijacked because integrity checks and authentication checks were not properly in place

that part we definitely agree on

Notepad++ even said that they moved hosting providers after this happened to them

side note: doesn’t remotely solve the problem… software updates should be immune to this to start with. it’s a problem that the hosting provider was compromised, but honestly we’re talking about a state sponsored hack targeting other states: almost no hosting provider would include this in their risk assessment, let alone shared hosting providers

Can you point out an existing open source application that runs on Windows that only uses GPG signatures?

again, that’s irrelevant… the concept that we’re talking about isn’t even specific to GPG. signing a hash using a private key is basic crypto, and GPG is a specific out of the box implementation

if we remove microsoft signing as an option for whatever reason (which we have) then it’s still very possible, and very easy to implement signed updates into your own custom update mechanism

9tr6gyp3@lemmy.world on 03 Feb 08:49 collapse

if we remove microsoft signing as an option for whatever reason (which we have) then it’s still very possible, and very easy to implement signed updates into your own custom update mechanism

Im not convinced

sus@programming.dev on 02 Feb 16:32 collapse

Cryptography is hard and programmers are notoriously really really really bad at it.

someone@lemmy.today on 02 Feb 19:50 collapse

that’s a brutal hack. so they hacked the hosting update server, made it monitor incoming IPs, and then selectively uploaded a compromised backdoor update based on IP only to certain computers so it would go undetected longer?

it’s awful, but technically impressive that someone could remotely hack the server like that and set up such a complex system to target IPs… unless it was a state actor that compelled the server company to provide local access, in which case it’s less impressive.

Ludicrous0251@piefed.zip on 02 Feb 07:39 next collapse

Note on timelines: The security exper’s analysis indicates the attack ceased on November 10, 2025, while the hosting provider’s statement shows potential attacker access until December 2, 2025. Based on both assessment, I estimate the overall compromise period spanned from June through December 2, 2025, when all attacker access was definitively terminated.

I’m only aware of the one (somewhat extended) time described in the article. The dev(s?) has been upfront about what happened and provided updates as they learned more information, hence multiple headlines on the subject.

With these changes and reinforcements, I believe the situation has been fully resolved. Fingers crossed.

Limonene@lemmy.world on 02 Feb 14:26 collapse

Once

tal@lemmy.today on 02 Feb 08:06 next collapse

The incident began from June 2025. Multiple independaent security researchers have assessed that the threat acotor is likely a Chinese state-sponsored group, which would explain the highly selective targeting obseved during the campaign.

I do kind of wonder about the emacs package management infrastructure system. Like, if attacking things that text editors use online is an actively-used vector.

samc@feddit.uk on 02 Feb 11:55 next collapse

Well now I’m nervous! My first instinct though is that the vast majority of Emacs packages are plain elisp, and Emacs users have a habit of cracking open and tinkering with their packages, so any malicious code ought to be spotted quickly.

With the native compiled modules however, it could be another story…

Piatro@programming.dev on 02 Feb 12:43 next collapse

Text editors with plugin support as potential vectors of malware is a pretty well known problem. It’s why at the very least organisations should be auditing the plugins used and actively monitoring them.

ZoteTheMighty@lemmy.zip on 02 Feb 23:45 collapse

Someone almost managed to inject a vulnerability into the source code for sshd. They planned it for years, and it was only caught because someone noticed unusually high network traffic. Any vulnerability into a core package like that could be massive. Notepad++ is a little smaller, but this is still one of the bigger hacks of the decade.

tal@lemmy.today on 02 Feb 23:50 collapse

Someone almost managed to inject a vulnerability into the source code for sshd.

You’re probably thinking of the Jia Tan attack on xz; because of a distro patch in Debian, code in xz had the ability to affect sshd. The changes weren’t actually to the sshd source, but trying to use an obscure route to affect sshd.

flandish@lemmy.world on 02 Feb 10:27 next collapse

know this one was not their fault but i haven’t trusted np++ since the charlie hebdo stunt that made it look like the app was a virus.

brian@programming.dev on 02 Feb 19:41 collapse

I think their support of charlie hebdo was different from them getting attacked for it. it’s hard to tell if you’re blaming them for naming a version in solidarity or getting hacked afterwards.

flandish@lemmy.world on 02 Feb 23:38 collapse

the version would pop a new window and auto type. that, when i saw it, smelled just like an attack. so i uninstalled and yeah it wasnt an attack but certainly was a stupid effect.

melsaskca@lemmy.ca on 02 Feb 12:58 next collapse

I remember a day when hackers used to be sponsored privately. /s

Calfpupa@lemmy.ml on 02 Feb 13:06 collapse

It used to be that being a ML (Malicious Linguist) in someones garage was the rage, now we got “Hackers with Chinese characteristics” smh

Calfpupa@lemmy.ml on 02 Feb 13:01 next collapse

It bothers me that there are so many typos in this post. Doesn’t N++ have spellcheck?

M0oP0o@mander.xyz on 02 Feb 18:35 next collapse

Maybe that was in an update.

Calfpupa@lemmy.ml on 02 Feb 21:35 collapse

Funny. (Offered since 2015, last update was in 2023)

M0oP0o@mander.xyz on 02 Feb 21:47 collapse

Yeah, not like we are reading about how “According to the analysis provided by the security experts, the attack involved infrastructure-level compromise that allowed malicious actors to intercept and redirect update traffic destined for notepad-plus-plus.org.”

But maybe the endless need for autoupdates on everything (in this case N++) will be the end of secure software. Ironic.

Calfpupa@lemmy.ml on 02 Feb 22:17 collapse

Wait, are you saying that the attacks in 2025 possibly disabled the devs spellcheck?

M0oP0o@mander.xyz on 02 Feb 22:30 collapse

Ha! Unlikely, but having a notepad program have automatic updates by default is just about dumb enough that I could see it.

Calfpupa@lemmy.ml on 02 Feb 22:43 collapse

For sure

Hupf@feddit.org on 02 Feb 23:10 collapse

It does have ninjas though.

thenewred@lemmy.world on 02 Feb 14:19 next collapse

So the exploit redirected update traffic. Does that mean anyone who ran updates in that time period could have downloaded a compromised version and their machine would be infected?

Why isn’t that covered in the post?

Kissaki@programming.dev on 02 Feb 15:37 next collapse

Yes, that’s what it means.

And apparently, it happened selectively, not generally, but for specific people/request sources.

It would only be if you use the Notepad++'s own update mechanism. If you used other package managers or went and downloaded the installer to update you’d be fine.

chunes@lemmy.world on 02 Feb 15:43 collapse

First thing I do every time I (manually) update notepad++ is turn off automatic updates. Automatic updates are the root of all evil

M0oP0o@mander.xyz on 02 Feb 18:34 collapse

But what about all the new and exciting features?! What if they come out with more letters, then who will be laughing? Likely still you but hey automagic programs are standard right?

emb@lemmy.world on 02 Feb 15:25 next collapse

Worth noting this is not a new vulnerability, it’s an analysis of a vulnerability disclosed in December:

Following the security disclosure published in the v8.8.9 announcement
notepad-plus-plus.org/news/v889-released/
the investigation has continued in collaboration with external experts and with the full involvement of my (now former) shared hosting provider.

According to the analysis provided by the security experts, the attack involved infrastructure-level compromise that allowed malicious actors to intercept and redirect update traffic destined for notepad-plus-plus.org. The exact technical mechanism remains under investigation, though the compromise occured at the hosting provider level rather than through vulnerabilities in Notepad++ code itself.

someone@lemmy.today on 02 Feb 19:45 next collapse

shoutout to evilsocket! nothing like this ever gets access with opensnitch

fort_burp@feddit.nl on 02 Feb 20:39 next collapse

Notepad++ Hijacked by State-Sponsored Hackers

Links to notepad-plus-plus.org

Yea idk enough about to computers to know if I should click that or not…

Dionysus@leminal.space on 03 Feb 14:43 collapse

Didn’t Steve Gibson talk about this awhile ago?