SAP SAProuter up to 721 Patch Level 117 Password Authentication passwordCheck access control

CVSS Meta Temp Score
CVSS is a standardized scoring system to determine possibilities of attacks. The Temp Score considers temporal factors like disclosure, exploit and countermeasures. The unique Meta Score calculates the average score of different sources to provide a normalized scoring system.
Current Exploit Price (≈)
Our analysts are monitoring exploit markets and are in contact with vulnerability brokers. The range indicates the observed or calculated exploit price to be seen on exploit markets. A good indicator to understand the monetary effort required for and the popularity of an attack.
CTI Interest Score
Our Cyber Threat Intelligence team is monitoring different web sites, mailing lists, exploit markets and social media networks. The CTI Interest Score identifies the interest of attackers and the security community for this specific vulnerability in real-time. A high score indicates an elevated risk to be targeted for this vulnerability.
5.9$0-$5k0.00

Summaryinfo

A vulnerability classified as critical has been found in SAP SAProuter up to 721 Patch Level 117. This vulnerability affects the function passwordCheck of the component Password Authentication. Performing a manipulation results in access control. This vulnerability is known as CVE-2014-0984. Furthermore, an exploit is available. Applying a patch is the recommended action to fix this issue.

Detailsinfo

A vulnerability classified as critical has been found in SAP SAProuter up to 721 Patch Level 117 (Router Operating System). This affects the function passwordCheck of the component Password Authentication. The manipulation with an unknown input leads to a access control vulnerability. CWE is classifying the issue as CWE-264. This is going to have an impact on confidentiality, and integrity. The summary by CVE is:

The passwordCheck function in SAP Router 721 patch 117, 720 patch 411, 710 patch 029, and earlier terminates validation of a Route Permission Table entry password upon encountering the first incorrect character, which allows remote attackers to obtrain passwords via a brute-force attack that relies on timing differences in responses to incorrect password guesses, aka a timing side-channel attack.

The weakness was published 04/15/2014 by Martin Gallo with Core Security Consulting Services as CORE-2014-0003 as not defined advisory (Website). The advisory is shared at coresecurity.com. The public release has been coordinated with SAP. This vulnerability is uniquely identified as CVE-2014-0984 since 01/07/2014. It is possible to initiate the attack remotely. No form of authentication is needed for exploitation. Technical details and a public exploit are known. MITRE ATT&CK project uses the attack technique T1068 for this issue. The reason for this vulnerability is this part of code:

.text:0000000140005BE0 loc_140005BE0:                          ; CODE XREF: passwordCheck+191j
.text:0000000140005BE0                 movzx   ecx, byte ptr [rdi] ; rdi points to the routtab password
.text:0000000140005BE3                 movzx   eax, byte ptr [rdi+rsi] ; rdi+rsi points to the user-supplied password
.text:0000000140005BE7                 sub     ecx, eax
.text:0000000140005BE9                 jnz     short loc_140005BF3 ; password check failed
.text:0000000140005BEB                 add     rdi, 1
.text:0000000140005BEF                 test    eax, eax
.text:0000000140005BF1                 jnz     short loc_140005BE0
.text:0000000140005BF3
.text:0000000140005BF3 loc_140005BF3:                          ; CODE XREF: passwordCheck+189j
.text:0000000140005BF3                 test    ecx, ecx
.text:0000000140005BF5                 jz      short loc_140005C3F
.text:0000000140005BF7                 cmp     cs:trace_level, 1
.text:0000000140005BFE                 jl      short loc_140005C38
.text:0000000140005C00                 call    DpLock
.text:0000000140005C05                 mov     rcx, cs:qword_140273BC0
.text:0000000140005C0C                 lea     r8, aPasswordcheck ; "passwordCheck"
.text:0000000140005C13                 lea     rdx, aSPasswordCheck ; "%s: password check failed\n"
.text:0000000140005C1A                 mov     cs:dword_1401ADAA4, 1
.text:0000000140005C24                 call    DpTrace
.text:0000000140005C29
.text:0000000140005C29 loc_140005C29:                          ; CODE XREF: passwordCheck+16Fj
.text:0000000140005C29                 mov     cs:dword_1401ADAA4, 2
.text:0000000140005C33                 call    DpUnlock
.text:0000000140005C38
.text:0000000140005C38 loc_140005C38:                          ; CODE XREF: passwordCheck+135j
.text:0000000140005C38                                         ; passwordCheck+19Ej
.text:0000000140005C38                 mov     eax, 0FFFFFFA2h
.text:0000000140005C3D                 jmp     short loc_140005C41
.text:0000000140005C3F ; ---------------------------------------------------------------------------
.text:0000000140005C3F
.text:0000000140005C3F loc_140005C3F:                          ; CODE XREF: passwordCheck+12Cj
.text:0000000140005C3F                                         ; passwordCheck+174j ...
.text:0000000140005C3F                 xor     eax, eax        ; password check succeeded
The advisory points out:
SAP Router permits and/or forbids networks connections based on a Route Permission Table. Entries in the Route Permission Table can have a password. If a password is specified for a given entry in the Route Permission Table, SAP Router checks whether the user-supplied password matches with the one in the Route Permission Table entry before permitting a connection. The vulnerable function passwordCheck performs a non-constant time string comparison for checking the user-supplied password against the on in the Route Permission Table. On the first non-matched character, the string comparison function immediately interrupts the evaluation cycle, which may let an attacker perform timing attacks.

A public exploit has been developed by Martin Gallo in Python and been published immediately after the advisory. The exploit is shared for download at coresecurity.com. It is declared as proof-of-concept. The vulnerability was handled as a non-public zero-day exploit for at least 46 days. During that time the estimated underground price was around $5k-$25k. The code used by the exploit is:

def try_password(options, password, output=None, k=0):
 
    p = SAPRouter(type=SAPRouter.SAPROUTER_ADMIN, version=options.router_version)
    p.adm_command = 2
    p.adm_password = password
    p = str(SAPNI() / p)
 
    fau_timer.init()
    fau_timer.send_request(options.remote_host, options.remote_port, p, len(p))
    fau_timer.calculate_time()
    cpuSpeed = fau_timer.get_speed()
    cpuTicks = fau_timer.get_cpu_ticks()
    time = fau_timer.get_time()
 
    if options.verbose:
        print "Request time: CPU Speed: %s Hz CPU Ticks: %s Time: %s nanosec" % (cpuSpeed, cpuTicks, time)
 
    # Write the time to the output file
    if output:
        output.write("%i,%s,%s\n" % (k, password, time))
 
    return time

Applying the patch SAP Note 1986895 is able to eliminate this problem. The bugfix is ready for download at service.sap.com. A possible mitigation has been published before and not just after the disclosure of the vulnerability.

The vulnerability is also documented in the databases at Exploit-DB (32919) and Secunia (SA57993†). Similar entries are available at VDB-5630, VDB-8450, VDB-8451 and VDB-8630. Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Affected

  • SAP Router release 721 Patch Level 117
  • SAP Router release 720 Patch Level 411
  • SAP Router release 710 Patch Level 029

Productinfo

Type

Vendor

Name

Version

License

Website

CPE 2.3info

CPE 2.2info

CVSSv4info

VulDB Vector: 🔍
VulDB Reliability: 🔍

CVSSv3info

VulDB Meta Base Score: 6.5
VulDB Meta Temp Score: 5.9

VulDB Base Score: 6.5
VulDB Temp Score: 5.9
VulDB Vector: 🔍
VulDB Reliability: 🔍

CVSSv2info

AVACAuCIA
💳💳💳💳💳💳
💳💳💳💳💳💳
💳💳💳💳💳💳
VectorComplexityAuthenticationConfidentialityIntegrityAvailability
UnlockUnlockUnlockUnlockUnlockUnlock
UnlockUnlockUnlockUnlockUnlockUnlock
UnlockUnlockUnlockUnlockUnlockUnlock

VulDB Base Score: 🔍
VulDB Temp Score: 🔍
VulDB Reliability: 🔍

NVD Base Score: 🔍

Exploitinginfo

Class: Access control
CWE: CWE-264
CAPEC: 🔍
ATT&CK: 🔍

Physical: No
Local: No
Remote: Yes

Availability: 🔍
Access: Public
Status: Proof-of-Concept
Author: Martin Gallo
Programming Language: 🔍
Download: 🔍

EPSS Score: 🔍
EPSS Percentile: 🔍

Price Prediction: 🔍
Current Price Estimation: 🔍

0-DayUnlockUnlockUnlockUnlock
TodayUnlockUnlockUnlockUnlock

Exploit-DB: 🔍

Threat Intelligenceinfo

Interest: 🔍
Active Actors: 🔍
Active APT Groups: 🔍

Countermeasuresinfo

Recommended: Patch
Status: 🔍

Reaction Time: 🔍
0-Day Time: 🔍
Exploit Delay Time: 🔍

Patch: SAP Note 1986895

Timelineinfo

01/07/2014 🔍
02/20/2014 +44 days 🔍
02/20/2014 +0 days 🔍
04/07/2014 +46 days 🔍
04/15/2014 +8 days 🔍
04/15/2014 +0 days 🔍
04/16/2014 +1 days 🔍
04/17/2014 +1 days 🔍
04/17/2014 +0 days 🔍
08/15/2024 +3773 days 🔍

Sourcesinfo

Vendor: sap.com

Advisory: CORE-2014-0003
Researcher: Martin Gallo
Organization: Core Security Consulting Services
Status: Not defined
Confirmation: 🔍
Coordinated: 🔍

CVE: CVE-2014-0984 (🔍)
GCVE (CVE): GCVE-0-2014-0984
GCVE (VulDB): GCVE-100-13005
Secunia: 57993 - SAProuter Password Timing Attack Weakness, Not Critical

scip Labs: https://www.scip.ch/en/?labs.20150716
See also: 🔍

Entryinfo

Created: 04/17/2014 14:22
Updated: 08/15/2024 13:47
Changes: 04/17/2014 14:22 (80), 04/01/2019 14:26 (1), 08/15/2024 13:47 (16)
Complete: 🔍
Cache ID: 216:F7B:103

Discussion

No comments yet. Languages: en.

Please log in to comment.

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!