Java Floating Point Bug Can Lock Up Servers
An anonymous reader writes "Here we go again: Just like the recently-reported PHP Floating Point Bug causes servers to go into infinite loops when parsing certain double-precision floating-point numbers, Sun/Oracle's JVM does it, too. It gets better: you can lock up a thread on most servers just by sending a particular header value. Sun/Oracle has known about the bug for something like 10 years, but it's still not fixed. Java Servlet containers are patching to avoid the problem, but application code will still be vulnerable to user input."
It's amazing how fast public disclosure can get bugs fixed.
make imaginary.friends COUNT=100 VISIBLE=false
Java is a secure virtual machine environment. Programs never crash and low level errors like pointer or memory problems are impossible. There is no way this floating point thing is real.
Java is the future and you are retarded. Java is the fastest programming language ever invented, that's why it's the primary language we learn and teach in school.
I have been a HTML programmer for many years, I know what I'm talking about.
...it's a critical bug in an Adobe product. Then it's going to linger for months, if not years.
There's no -1 for "I don't get it."
Yes because this will surely bring down the world of Open Source for good!
Actually, it's already fixed: Oracle has released a fix for this issue through Security Alert CVE-2010-4476. For more information see: http://blogs.oracle.com/security/2011/02/security_alert_for_cve-2010-44.html
But I think I'll stick to running Folding@Home on all cores to burn in thermal paste. Seems more productive, you know?
Orwell: "In a Time of Universal Deceit, telling the Truth is a Revolutionary Act"
Write once, exploit anywhere!
Unstable overrides cheap every time. I'll take stable and fast for $200, Alex.
make imaginary.friends COUNT=100 VISIBLE=false
Like I said, it's amazing how fast public disclosure can get bugs fixed. Even ones that have been known for 10 years.
make imaginary.friends COUNT=100 VISIBLE=false
The PHP bug was reported on Dec. 30 and fixed I think on Jan. 3, which is 5 days. I'm pretty sure it doesn't take a time machine to make a one-line fix that quickly!
dom
I now uninstall Java from any systems I work on as a security precaution. The auto-update is a nice 'feature', but in most client's systems I work on, none of them have any compelling reason for an installation of Java.
Over two years and no fix for Java
"Sami Koivu has released details of a security vulnerability in Java which he reported to Sun in 2008. A quick test using the current version 1.6.0_23 reveals that it remains unpatched "
As a more than decade-long Java programmer, I must say that I am shocked! Shocked! that Sun would do something like that.
Why, I'd go so far as to predict that a company that behaved that way would find itself out of business.
Hey, wait a second...
Does Java software crash all the time because of this bug? No, of course not, that's one reason Java software is useful at all.
Like with any software, it is essential to prioritize bug fixes. You deal with the bugs that bite you, and save the rest for later.
This is a valid principle for anything made by people, not just software. Somebody might find out, for example, that if you subject a window to a specific frequency of sound, the window will shatter. So what! Don't do that! But...if burglars start going around with a device that emits this frequency, then it's time to come up with an antidote.
Java (like Mac OS) has enjoyed a relatively free ride, when it comes to malicious hackers. It's not that Java is somehow superior, it's just not been an attractive enough target. The fact that it is now being attacked is, in a way, a sign of its success.
Let me clue you in to a little secret: That's not really thermal paste...
You are welcome on my lawn.
Or get your ass sued for daring to reveal long-standing bugs that the assholes that maintain it have consistently refused to fix.
The world's burning. Moped Jesus spotted on I50. Details at 11.
The supercomputer Hex. Only at the Unseen University. "Anthill Inside"!
"What in the name of Fats Waller is that?"
"A four-foot prune."
Bug ID 4399272 trumps the one mentioned in the article and was logged 08-Dec-2000. As with 4421492 it's no longer available on the Sun site, but it's still in Google's cache.
I was working on a gas/billiard ball simulation a couple years ago and kept on running into a bug where the simulation would lock up in an infinite loop, and iirc, that magic number kept popping up. All along I thought it was some sort of bug in my code (it was a horrible hack job; it's almost unmaintainable).
Fuck Beta
DO... NOT... TRY... THIS...
Don't say I haven't warned you!!!!!
Questions raise, answers kill. Raise questions to stay alive.
Well, if it's not thermal gel, thermal compound, thermal paste, heat paste, heat sink paste, heat transfer compound, or heat sink compound, then I don't know what it is. Although if you spend enough time messing with it, I do know it makes a wonderful contraceptive - as G/Fs get tired of being ignored and move on.
Orwell: "In a Time of Universal Deceit, telling the Truth is a Revolutionary Act"
Oracle has posted a fix for the bug, in the form of a patch. Official releases will be available next week. http://www.oracle.com/technetwork/java/javase/fpupdater-tool-readme-305936.html http://blogs.oracle.com/security/2011/02/security_alert_for_cve-2010-44.html
The code works fine on Android. Guess that they are not running a true JVM.
it's made of people?!
Monstar L
Thats the combination to my luggage!
The PHP bug was reported on Dec. 30 and fixed I think on Jan. 3, which is 5 days.
Yow! 5 days.
I wonder what happened between Dec 30 and Jan 3? Anything that might of distracted the developers?
Watch this Heartland Institute video
The article makes it clear that the problem is in FloatingDecimal.java. It is converting decimal strings to floating point numbers - fp arithmetic is fine!
Actually it's more amazing how a well described, reproducible error which illustrates a security flaw gives rise to a fix. Sounds like the previous bugs were too vague to isolate the issue. Bug databases always end up with bugs like that. Go look how many bugs Firefox has open on it for example.
Wont help :-) it only triggers if the text field parses for a floating LONG number!
Most textfields either go for Int or Float as their targets.
Yeah bugs that pop up every so often to end users (and are common enough or reported by trusted enough users that they can't just by dismissed as coming from liers/trolls) but only pop up sporadically and/or only pop up on certain systems are a big problem for developers. With no reliable way to reproduce a bug it is almost impossible to fix it.
Even more irritating are the bugs that dissapear as soon as you try to use a debugger.
The firefox memory and CPU usage issues are good examples of this. Way too many users reported them to dismiss them as a lie or fluke but there was no set of steps to reproduce. Every so often one cause was found and squashed but they kept coming up for years and may still be doing so (I still see firefox crash for no apparent reason and it wouldn't surprise me if the cause is running out of address space).
note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
That bug from 2000 reports an issue in the parsing code but doesn't appear to be a DOS like the one under discussion here.
note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
Five days to look into a low level problem and verify it. It is my understanding that low-level issues like this could have a large impact. So more than one person would probably be involved in discussions of the problem and the fix. Then testing. All during the holiday season. All of it done by volunteers. I'd say that was good service.
Well, there's spam egg sausage and spam, that's not got much spam in it.
Yes. The thing that distracted them is the lack of "Have." Luckily, they substituted "Of." :P
NumberConverter (which uses DecimalFormat.parse) will produce either a Long or a Double (if the value will not fit into a Long). (I was mistaken in an earlier post where I stated that it produces a BigDecimal. You can specify BigDecimal parsing using DecimalFormat.setParseBigDecimal, but this is not the default.) I looked at the source code for DigitFormat on grepcode and it looks like Sun's DecimalFormat implementation parses all the digits in the input string as a DigitList object, which then reconstructs the string before calling Double.parseDouble. The result is that "2.2250738585072012e-308" becomes "2.2250738585072014" before being passed into Double.parseDouble. So if you're using DecimalFormat or, for example, (which is backed by javax.faces.convert.NumberConverter, which uses DecimalFormat) then you should be safe.
Even more irritating are the bugs that dissapear as soon as you try to use a debugger.
We call those Heisenbugs, as obsering them changes the result.
Socialism: a lie told by totalitarians and believed by fools.
Those are a whole lot of fun in real-time, event driven systems. Slow things down by tracing the code and the problem doesn't occur anymore.
make imaginary.friends COUNT=100 VISIBLE=false
How slow is an infinite loop in Java? Now much memory does it take to execute?
make imaginary.friends COUNT=100 VISIBLE=false