Jump to content

Recommended Posts

Posted

You've all updated your Firefox recently to version 2.0.0.4 . If you haven't updated it yet, do it asap. Here's something concerning the security update.

 

Unpatched Input Validation Flaw in Firefox (Directory Traversal) 

5 Jun. 2007

 

 

Firefox 2.0.0.4 contains a fix for a directory traversal vulnerability that allowed you to read local files through the resource protocol.

 

However, the patch only partially fixed the vulnerability on Windows systems and accidentally circumvents an existing input validation check.

 

The net result is that you can still read some local files on Windows and all user accessible files on Linux/Unix/OS X, with all user accessible files potentially readable as well on Windows through the patch regression.

 

 

The original article can be found here)

 

 

The patch from Bugzilla report 367428 that was introduced in Firefox 2.0.0.4 accidentally opens up the resource protocol to a separate input validation flaw. But first, a recap.

 

There were a number of interesting comments on Thor's previous post, Firefox 0day local file reading. Checking the current Windows patch status was suggested by Sergey Vzloman and H D Moore highlighted what has now become general knowledge - that the directory traversal vulnerability in Firefox 2.0.0.3 is still present in the updated Firefox 2.0.0.4 under Linux/Unix and OS X.

 

The patch only closes the directory traversal aspect on Windows. You can still read local files in Firefox 2.0.0.4 on Windows, but it is now limited to the files within your Firefox installation directory such as update.xml and install.log that reveal your current Firefox patch status. It is still possible to determine the local installation path and query for the installation status of arbitrary plugin DLL's, as Thor demonstrated with the PoC in Thor's previous post. Non-Windows operating systems are still vulnerable to the full directory traversal vulnerability, allowing you to read any local files that your user account can reach.

 

Before the 2.0.0.4 patch the input to nsResProtocolHandler::ResolveUR it was already checked to prevent any : characters from sneaking in, which can allow absolute URI references such as "res:C:boot.ini" or "res:http://www.google.com/". This check is still in place in lines 334 to 336.

 

       

// Don't misinterpret the filepath as an absolute URI.
        if (filepath.FindChar(':') != -1)
            return NS_ERROR_MALFORMED_URI;

 

Since the previous directory traversal vulnerability depended on URL-escaped characters such as %5C to work the patch added the currently present lines 338 to 340.

 

       

NS_UnescapeURL(filepath);
        if (filepath.FindChar('\') != -1)
            return NS_ERROR_MALFORMED_URI;

Since the filepath is now unescaped after the check for a : character has occurred, it is possible to inject : characters with the URL-escaped version %3A.

 

A non-malicious example request that can be used for verification is the following link include, which passes on unfiltered : characters to the host file system.

 

   

<link rel="stylesheet" href="resource://gre/browserconfig%3A.properties" />

 

It is also possible to pass on @ characters to the host file system, which at least on the Windows platform can be used to implement Basic Authentication style URI s.

 

There are some odd URI resolver logic in nsIStandard::Resolve that he will still have to look into. Under some circumstances on Windows, Thor can get / characters translated into \ characters and have triple dots translated into double dots, which will once again allow the full directory traversal vulnerability. However, the output is flaky at best and he will have to do some tedious single stepping through the URI resolver logic code to determine at what point the input is unescaped twice :)

 

 

 

if it is posible plz tell and in greek langafe (me liga logia) what is happen, what include this new up-date for non-expert at english language :D

Posted

No, it is not possible to translate it, sorry, some terms are meant to be in English, and I think these terms are what you don't understand.

Posted

No, it is not possible to translate it, sorry, some terms are meant to be in English, and I think these terms are what you don't understand.

 

**sorry for GR

me liga logia, ine kalo na to kanoume to up-date? exoume kalitero apodosi? kaliteri prostasia? de sou zito na mou to metafrasis olo, alla periliptika se 2-3 sires ti neo mas parexi to new up-date

Posted

Λοιπόν, όπως όλα τα updates, έτσι κι αυτό είναι απαραίτητο να γίνει γιατί διορθώνει κάποια κενά ασφαλείας της προηγούμενης έκδοσης. Αυτό που εξηγώ στο άρθρο είναι το κενό αυτό, καθώς και ότι δεν καλύφθηκε πλήρως (ισχύει ακόμη κατά κάποιο τρόπο). Το update σε μένα έγινε αυτόματα χθες ή προχθές, αν θυμάμαι καλά. Από εκεί και ύστερα παραθέτω το vulnerability.

Guest
This topic is now closed to further replies.


  • Posts

    • L2JMobius C1 System C1 + bonus textures C3 for C1 https://www.mediafire.com/folder/6oh7l7hf34xr9/C1
    • https://prnt.sc/Bkkc0ShGXv9m https://prnt.sc/-JFLvZXsn27A
    • Hello guys want to sell adena in L2 Reborn Signature x1  Stock =14kk good price 
    • Hi guys, I have the following problem, I want to set up two servers on the same dedicated server and I can't.   L2jacis 409 Linux Server. The first gameserver has the following configuration: # ================================================================ # Gameserver setting # ================================================================ # This is transmitted to the clients, so it has to be an IP or resolvable hostname. If this ip is resolvable by Login just leave * Hostname = 190.25.103.103 # Bind ip of the gameserver, use * to bind on all available IPs. GameserverHostname = * GameserverPort = 7777 # The Loginserver host and port. LoginHost = 127.0.0.1 LoginPort = 9014 # This is the server id that the gameserver will request. RequestServerID = 1 # If set to true, the login will give an other id to the server (if the requested id is already reserved). AcceptAlternateID = True UseBlowfishCipher = True # ================================================================ # Database informations # ================================================================ URL = jdbc:mariadb://localhost/server1 Login = server1 Password = server1 I configured the second gameserver like this:   # ================================================================ # Gameserver setting # ================================================================ # This is transmitted to the clients, so it has to be an IP or resolvable hostname. If this ip is resolvable by Login just leave * Hostname = 0.0.0.0 # Bind ip of the gameserver, use * to bind on all available IPs. GameserverHostname = * GameserverPort = 7788 # The Loginserver host and port. LoginHost = 127.0.0.1 LoginPort = 9014 # This is the server id that the gameserver will request. RequestServerID = 2 # If set to true, the login will give an other id to the server (if the requested id is already reserved). AcceptAlternateID = True UseBlowfishCipher = True # ================================================================ # Database informations # ================================================================ URL = jdbc:mariadb://localhost/server2 Login = server2 Password = server2 apart from having tested 0.0.0.0 on the second gameserver I also tried 127.0.0.1 In both cases I see the two servers in the login when I log in, but I try to enter the one with the lowest ping and it kicks me out. The other server always appears with ping 9999 and I try to enter but it doesn't do anything and it freezes the login so I have to log in again. The hexids are in their respective folders. For server 1, it has its hexid inside the gameserver config folder, and I checked that the hexid id is the same id, for example id 1 in the gameserver is also id1 for server 1, and hexid 2 has its hexid 2 for server 2. The server ports are open and listening when I turn on both gameservers. I really don't know what could be wrong. If you could give me some help I would appreciate it. Excuse my English.
  • Topics

×
×
  • Create New...