Buffer Overflows in Notepad++
securitylab.github.com
securitylab.github.com
While it's good they're fixed, it looks pretty much like what you get running code in a fuzzer with ASan enabled - finding obscure and very difficult to exploit memory correctness bugs. Unless a miracle happens and those 3 bytes can be made to belong to some very important structure, there's not much can be done with control of those 3 bytes.
> 2023-08-21: Publishing according to our coordinated disclosure policy.
I read it as NOT fixed.
> 2023-07-17: Asked the maintainer if they successfully downloaded the binary PoC, if they have any questions and notified about the disclosure policy. No reply received.
It doesn't sound like there's a dispute over these being bugs, but the author has forgotten or ignored this issue?
But still..
* Headline: BUFFER OVERFLOWS! WRITES! (MAYBE) ARBITRARY CODE EXECUTION!
* Details: we can make it continue 1 extra cycle of a loop to write beyond a string buffer boundary. We can't make it perform arbitrary code execution but you never know.
If the string buffer abuts something important in memory (e.g. a return address on the stack), or you can manipulate things so that it does, then even 1 byte write is bad, so I wouldn't dismiss it out of hand... but it does seem like the researchers didn't find anything useful to do with their 3-byte overflow write.
Hopefully the author picks this up and fixes it.
You can't fix all of the bugs, nor should you try. You have balance bug fixing with feature development.
Say, a *.txt file attached to an email, the opening of which in a text editor is usually considered benign.
This is a feature of Windows 10+ https://learn.microsoft.com/en-us/windows/apps/design/global...
I think that's more severe than you suggest; it means that someone could craft malware and all it would take is get someone to view the file in notepad++ to run an exploit.
Using that to justify not fixing specific critical bugs is silly.
A person reporting a CVE that allows arbitrary code execution is not saying "you should fix all the bugs", they're saying "This bug is important".
You can and should strive to fix all clearly-reported show-stopper security bugs. Which this is.
Might be time to prioritize doing so.
Edit: Not sure why this is being downvoted
(I personally ditched n++ because the shell highlighting false-positives errors, and syntax errors are especially ugly in the default scheme. And it wasn't on GitHub back then, so complaining would be a chore.)
The funny thing is that my N++ instance has ~5 files always opened, 3-4 of those buffers and when they get to 6 or 7 I trim them down to 3-4. This is probably the beginning of why we find people doing weird things...
I use both. NP++ for like single documents or quick kanban lists for myself. VSCode is better for a group of closely related items such as when using it as an IDE. As I do not keep both open all the time NP++ usually wins on startup speed. Which fits my workflow.
I wouldn't call anything based on Electron "lightweight".
My completely subjective list of text editors in order of lightweightness:
Notepad2 - a feather
Notepad++ - a dog
VS Code - an elephant
Eclipse is like that one Russian aircraft carrier.
I think you can go either way with vscode similar to the whole vi vs neovim with tons of plugins
I was quite surprised, when I recently used VS for a small C project, at just how snappy it was for that project compared to VS Code for the same project.
I then compared it to VS Code for a larger C# project and it still compared very favourably in terms of responsiveness and speed.
I think a lot of people using VS Code are comparing small projects in VS Code to large projects in VS and concluding that it's VS that is the problem.
I just discovered Notepad3 [2], which appears to be a maintained fork. Screenshots look very similar to Notepad2. Gotta check it out later.
Any other forks that I should be aware of?
There are
- text editors
- programmers text editors
- integrated development environments
- rapid application development tools
Sorted by size, reversely proportional to feature set. Basically VSCode is an overbloated #2, that isn't good enough to be #3 and is nowhere near #4.
You could've fit a full blown RAD into 500MB (Borland C++ Builder) 20 years ago.
It's about normal.
It's also why Rust is struggling to eat into C and C++ marketshare - the class bugs it prevents has such a tiny footprint compared to all the bugs present in any given C and C++ system that it doesn't motivate the developers to spend the time Rust requires to ramp up to speed on a new language, and then use it in production.
Checked out the N++ repo, and saw it's got 2.1k open issues and 7.2k closed ones, and this is from an org that seems to be just one or two devs. How's that even sustainable?
I've got zero experience in maintaining big open-source projects, but those numbers would freak me out, to say the least. Way past what I'd call manageable.
The answer? Just maintain the project as the hobby it started as. Open source is provided without warranty and users are more than free to use the provided binaries for their convenience as-is or learn to compile to contribute fixes.
It's killed more useful projects than it's ever benefitted.
You then end up with that drive-by pull requester spitting venom everywhere on twitter and other forums about how hostile the project is
Depends on what you mean by "large changes". I've done drive-bys of changes, but they were, in my opinion, small changes.
(I think I'm in the credits for Lucaschess somewhere because of a 10-line change).
- Line operations (sort, remove blank lines, etc)
- Find/replace that can use either normal, {\n, \r, etc}, or regex
- Right-click to highlight a word in one colour, and then another word in another ...
One of my favourite Windows programs, along with Ditto (clipboard manager)
For instance: how many of those are actual bugs versus feature requests versus just questions.
Of the actual bugs, how many of those are actually critical and need fixing?
As long as incoming tickets are looked at and prioritized, and those tickets that come out on top are fixed in a timely manner all is good.
The team also just might not close any 'stale' issues that never made it to the top of the priority queue (some projects automatically close stale tickets after 1 month of inactivity, which is arguably worse).
FWIW the PR page is in much better shape: 11 Open vs 3664 Closed.
I fixed an issue myself that got on my nerve and was already sitting in the bugtracker for years, so they are more like helpful forum posts.