Stories
Slash Boxes
Comments

SoylentNews is people

posted by chromas on Monday April 09 2018, @06:12PM   Printer-friendly
from the (unsigned⠀int) dept.

https://www.theregister.co.uk/2018/04/04/microsoft_windows_defender_rar_bug/

A remote-code execution vulnerability in Windows Defender – a flaw that can be exploited by malicious .rar files to run malware on PCs – has been traced back to an open-source archiving tool Microsoft adopted for its own use.

[...] Apparently, Microsoft forked that version of unrar and incorporated the component into its operating system's antivirus engine. That forked code was then modified so that all signed integer variables were converted to unsigned variables, causing knock-on problems with mathematical comparisons. This in turn left the software vulnerable to memory corruption errors, which can crash the antivirus package or allow malicious code to potentially execute.


Original Submission

 
This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 3, Informative) by Subsentient on Tuesday April 10 2018, @01:15AM (2 children)

    by Subsentient (1111) on Tuesday April 10 2018, @01:15AM (#664763) Homepage Journal
    I can't agree. I think C++ has a large place in userland, the problem is programmers who don't know how to use it safely. C++ has plenty of high level constructs, yet you see people doing stuff like writing their own buggy strncpy() and using that, instead of a string class. C++ is a dangerous language, I can't deny that, because it gives you plenty of ammo to shoot yourself in the foot. The safety of Java and C# comes from being limited in capability. Do you remember Windows Vista? Do you remember what a bloated piece of shit it was? Know part of why that was? Because Microsoft rewrote a bunch of components in C# to be "with it/hip". Now, C and C++ have lots of very serious flaws, and they're very old languages, but I shudder at the idea of the majority of userland being written in a JVM-style language. Rust might be a good answer, if it's ever standardized and given GCC and Clang support. It has real pointers, real pointer arithmetic, it just makes you type "unsafe" so you know you're doing something potentially retarded. I'd be alright with that. Go isn't a good idea, because while it's a compiled language, it limits what you can do too much, just like Java would. Until it's standardized and gets lots of cross-platform OS support however, I don't think Rust is a viable replacement.
    --
    "It is no measure of health to be well adjusted to a profoundly sick society." -Jiddu Krishnamurti
    Starting Score:    1  point
    Moderation   +1  
       Informative=1, Total=1
    Extra 'Informative' Modifier   0  
    Karma-Bonus Modifier   +1  

    Total Score:   3  
  • (Score: 2) by DannyB on Tuesday April 10 2018, @01:26PM

    by DannyB (5839) Subscriber Badge on Tuesday April 10 2018, @01:26PM (#664930) Journal

    First, I think we live in different worlds. You are thinking close to the hardware. I'm thinking in terms of higher and higher level abstractions away from the hardware.

    Your argument seems to be that Java is limited in capability. And that if people work hard enough they can learn to use C++ safely. That simply repeats the ancient Assembly language vs FORTRAN debates of decades ago, and we know how the high level language vs Assembly turned out in favor of high level languages despite their inefficiency.

    My argument was that you should not be able to shoot yourself in the foot unless you go out of your way to do so. It should not be possible to accidentally shoot yourself in the foot.

    As for limited in capability, I'll grant you that Java is definitely not a language for writing an OS, device drivers, and microcontroller code. I think I already made that abundantly clear. But for a language of "limited capability", it has libraries to do everything, and has been the #1 language on TIOBE and other language indexes for jobs for years and years now. Java is used in banks, even for high speed trading.

    The fact that Java is so widely used must mean that it has something going for it. You might not recognize that that is, nor even like it. But it is very real. If there were one perfect programming language, everyone would be using it already.

    I already mentioned that when arguing about runtime costs, you should be optimizing for dollars. For more memory and CPU, I get amazing runtime monitoring, dynamic class reloading, garbage collection, highly optimized compilation to native code -- for the SPECIFIC processor that we're running on at runtime, not just some generic ahead-of-time compilation to generic amd64 that will run on all processors. In short, for those machine costs you are so concerned with, I get huge business and productivity benefits. More memory and CPU is a cheap price to pay. You're thinking too low level -- for application code. But again, C / C++ are great for low level code. Just not for applications.

    --
    The lower I set my standards the more accomplishments I have.
  • (Score: 2) by DannyB on Friday April 13 2018, @04:45PM

    by DannyB (5839) Subscriber Badge on Friday April 13 2018, @04:45PM (#666513) Journal

    I just want to point out:
    https://www.technotification.com/2018/04/highly-demanded-programming-languages.html [technotification.com]

    I see these from time to time. Just happened to stumble into one right now. As usual, Java is the number one language in demand.

    I'm not saying anything bad or negative about other languages. My only point here is that if Java is in such demand, there must be some reason for that. Some perfectly valid dollars-and-sense reason.

    As I said in my very first sentence earlier, all languages have a place. If there were a perfect language, we would ALL already be using it. Java has its warts like all others.

    --
    The lower I set my standards the more accomplishments I have.