textfiles/hacking/javabugs.txt

128 lines
5.6 KiB
Plaintext
Raw Normal View History

2021-04-15 11:31:59 -07:00
JAVASCRIPT PROBLEMS I'VE DISCOVERED
These have all been reported back to Netscape.
The press had a spotty record of reporting correctly on this. I've
prepared a small report on the stories I've seen. I'm amazed at how
inaccurate some of the stories are! You'd think that they would have
at least read some of what I've written!
If you see an article in the press mentioning these pages, please
let me know.
_________________________________________________________________
* (4/1) I will be making the 3/18 and 3/21 exploits available
shortly, since they are fixed in 3.0b2. -->
* (3/29) Netscape has gotten some fixes into 3.0b2. Of my three
exploits that I reported against 2.01, only the new history
tracker continues to work (I.e., the others were fixed in response
to my report).
* (3/22) Here is a note to the www-security list I wrote describing
the latest problems I know affecting 2.01.
* (3/21) I have a means (using 2.0 or 2.01) to read and retrieve
files off a user's disk. It requires a minimal forms interaction
by the user (MEANING: the user has to click on something to invoke
the file read). I am not making this exploit available at this
time.
* (3/18) I have modified the "directory browser" exploit such that
it works with 2.01. I am not making this exploit available at
this time.
* (3/18) Building on the item I discovered on 3/15, I found that if
I click on Cancel in the Save dialog, it invokes the "stuck
onload" bug I reported on 2/21 in a determinist fashion. Trying to
create such a repeatable incarnation of this bug is what lead me
to my "tracker" in the first place.
Anyway, utilizing a Save File dialog as the initiator, this lets
me build a history tracker that works with 2.01. I've created a
sample exploit. This writes the the same log as my 2/22 tracker,
so use this to view the tail of the logfile.
Note that with 2.01, the 1x1 window previously used ends up being
bigger, so you can easily see it flash. And, the "stuck onload"
gets "unstuck" by visiting another page with an onLoad() tag. This
may not be a very intriguing way to spy on someone.
* (3/15) NOTE: This item in and of itself is not necessarily a
security problem.
JavaScript loaded from some page can write to local files on your
disk. This info is from my news posting to the devs-javascript
group. This is the basic bit of code:
document.open("Can I write to your disk?")
document.write("<censored>")
document.close()
This trick requires the user to go through a File Save dialog, and
hence, is not transparent. The user chooses the file name, but I'm
able to write to disk none-the-less. This is quite against the
stated fact that JavaScript is "Secure. Cannot write to hard disk"
- and this works in 2.01.
Try my example.
For me, this always caused a GPF on Windows NT. That is, once the
File Save dialog appeared, no matter what I selected, it went
poof! It seems to core dump the UNIX version of Navigator if you
don't open up a new window relatively fast (i.e., before you go to
some other JavaScript laden page). I've found that nasty things
begin to happen if you click on Cancel in the Save dialog (see
3/18 for details).
Note that the file never gets closed until you exit Netscape, so
small writes tend to get buffered up and not output.
These above mentioned bugs with this mechanism initially lead me
to believe that the ability to write files was errantly added to
JavaScript. Brendan Eich has since informed me that this ability
is intentional, or at least, known about.
* (2/22) I discovered a way to make my JavaScript stay resident in a
new window, so that I can track your history in real time.
This problem has been fixed in Netscape-2.01; see Netscape's
security note on Java and JavaScript.
You can read the original article I posted to the RISKS Forum on
this problem. That whole issue is also available in the archive in
the UK. Another article of interest appeared Keith Dawson's TBTF
on Feb 28.
* (2/21) I've seen JavaScript stay resident after you leave a page.
This is what I call the "stuck onload()" problem, and is a BUG
(still in 2.01).
* (2/13) The bug in Netscape 2.0b3 that allowed JavaScript to
directory browse lives on in the 2.0 release, even after
Netscape told us it was fixed.
This is fixed in Netscape-2.01.
* This is a classified as a red herring, but JavaScript has the
ability to toss up arbitrary alert boxes. I used to have this one
pop up on my home page. I wanted this message to sound really bad.
This was before I wrote the tracker. A more interesting message
would be Please type your password or something similar.
* There are hundreds of exciting things to do with Netscape 2.0 and
JavaScript.
WARNING: viewing this page may damage or crash Netscape.
_________________________________________________________________
John Robert LoVerso, OSF Research Institute
Last modified on Monday, 01-Apr-96 14:51:07 EST.
This page accessed 16247 times.