SA1636307 - Penetration Test Medium and Low Vulnerabilities Updates

  • Updated
 

Client penetration testing on 5.2.2408 revealed a number of medium and low-level concerns.  Product development is working towards addressing most of these concerns within the next 4 months.  This article has been created to track their progress.

For further information regarding penetration testing please reference the article below:

https://support.optimizely.com/hc/en-us/articles/4413199823245-Security-assessments

 

API Rate Limiting Medium The API exposes sensitive endpoints that is not protected by rate-limiting techniques. Attackers query the API 
significantly more than legitimate API consumers. This will allow attackers to overwhelm the server by consuming 
excessive computational resource, which can make the API and potentially other service on the server unavailable 
to the legitimate users

This is on the roadmap

The Configured Commerce product team acknowledges the concern and has it on the roadmap.  They state that it requires deep research and involvement from multiple teams.
Improper Authorization Medium The Buyer role can change their account name by intercepting and modifying a PATCH request, despite this option being disabled in the user interface.

Fixed in 5.2.2503

 

Account Lockout Bypass via Race Condition Medium A race condition occurs when multiple login attempts are processed simultaneously before the account lockout mechanism can be triggered, allowing continuous guessing of credentials without being locked out

Fixed in 5.2.2504

 
Incomplete Account Logout Functionality Medium Logging out of the application does not forcefully invalidate the session cookie and bearer token. If these values become compromised, an attacker may take over a user’s session

Fixed in 5.2.2410 STS and 5.2.2412 LTS

 
 Weak Password Requirements Medium Commonly used passwords on top 100
password lists are allowed by the application. These passwords are highly
targeted during password spraying attacks.

The product team is researching options

 
Server-Side Request Forgery Medium There exists an authenticated endpoint that takes an arbitrary URL as a parameter that the server will make a request to.

Fixed in 5.2.2501 STS  and 5.2.2504 LTS

 
JWT Signature Exclusion  Medium The application allows for the tampering of Java Web
Tokens (JWT). Attackers can modify req

Working As Designed

The reported issue doesn't relate to the JWT signature validation.   The change to Authorization header (which is the client id) and requested scopes before it ever gets a JWT token. Confirmation of this is that if this is done with a storefront user, you can get a JWT token, but that token can not be used to access the Admin Console functions. Also, if the token is tampered with, it will be invalid.
Hard-Coded Secrets Medium The application’s source code was found to have hard coded secretes including username and password.

Working As Designed 

This basic auth header is required by IdentityServer to identify which SSO Client configuration to use, it is only an identifier and contains no comprisable information as the only OAuth flow enabled for the isc and isc_admin SSO Client configurations is the Resource Owner Password Credentials (ROPC) flow which requires the actual username and password to get an access token.

CKEditor Out of Date Medium CKEditor4 is an open source what-you-see-is-what-you-get HTML editor.
A potential vulnerability has been discovered in CKEditor 4 Code Snippet GeSHi plugin. The vulnerability allowed a reflected XSS attack by exploiting a flaw in the GeSHi
syntax highlighter library hosted by the victim. The GeSHi library was included as a vendor dependency in CKEditor 4 source files. In a specific scenario, an attacker could
craft a malicious script that could be executed by sending a request to the GeSHi library hosted on a PHP web server. The GeSHi library is no longer actively maintained.
Due to the lack of ongoing support and updates, potential security vulnerabilities have been identified with its continued use. To mitigate these risks and enhance the
overall security of the CKEditor 4, we have decided to completely remove the GeSHi library as a dependency. This change aims to maintain a secure environment and
reduce the risk of any security incidents related to outdated or unsupported software.
  We will replace CKEditor in the Admin Console with Tiny.
REQUEST URL OVERRIDE Medium The application appears to support HTTP headers that can be used to override parts of the request URL, potentially affecting processing of the request.
In some cases, these headers can be used to bypass protection systems and could be used to forge log entries

Working as Designed.

This is a known behavior.  Changing this behavior would intefere with customers using  x-forwarded-host
SSL Cookie Without Secure Flag Set Medium cookie.cms_CurrentContentMode

Working as Designed

CurrentContentMode is used to determine if the CMS shell is in edit or view mode. If someone were to change this cookie to edit mode, they could potentially see unpublished content. This cookie value is signed in a secure way so that we can trust the cookie values.  Changing the cookie to "httponly" is not an option with the use of JS.

 

AngularJS Out of Date/End of Life Medium Improper sanitization of the value of the '[srcset]' attribute in AngularJS allows attackers to bypass common image source restrictions, which can also lead to a form of
Content Spoofing https://owasp.org/www-community/attacks/Content_Spoofing .
This issue affects AngularJS versions 1.3.0-rc.4 and greater

New development in Admin Console uses React. Will be phased out over time

 
PASSWORD SUBMITTED VIA THE GET METHOD Medium

A form within the affected page appears to transmit user passwords within the query string (using the GET method). Sensitive data within URLs may be logged at a
number locations, including the web server, user's browser and any proxy servers between the client and the server. Form found at https://my.royalcanin.com/admin/signin 

All user credentials including passwords and session tokens should be transmitted using the POST method.

Working as Designed

This is a false positive by the scanner. It’s submitted via javascript (via a submit button) - scanner sees a form without a method attached and a submit button and assumes it’s using a GET when it is not
POSSIBLE SESSION TOKEN IN URL Medium The Application passes authentication tokens within the URL. These tokens may be stored in various locations, including the user's web browser, the server and in any
forward or reverse proxies. If an attacker can recover the token, they may be able to use the token to interact with the application as that user.

Addressed in 5.2.2409 and later

 

It's not a session token, it's an anti forgery token, not an issue
JQuery Out of Date/ End of Life Medium  

Will be addressed with the removal of CKEditor

References to jQuery will be removed when CKEditor is removed. References will be removed at the same time as CKEditor

         
FRAMEABLE URL COULD ALLOW CLICKJACKING ATTACKS Low It may be possible for a web page controlled by an attacker to load the affected application (or specific pages) within an iframe on the attacker's page. This may allow a "clickjacking" attack whereby the attacker's page overlays the target application with a different interface designed to trick the user into performing unwanted actions.
Note that this issue is being reported because the application's response does not set a suitable X-Frame-Options header in order to prevent framing attacks
   
POSSIBLE PATH TRAVERSAL VIA PATH PARAMETER OBFUSCATION  Low The application appears to support path parameters. It is sometimes possible to access sensitive files or other restricted components by using path parameters to bypass route matching rules. Unable to recreate in the latest release. couldn't recreate
CACHEABLE HTTPS RESPONSES Low Unless directed otherwise, browsers may store a locally cached copy of content received from web servers. Some browsers, including Internet Explorer, cache content
accessed via HTTPS. If sensitive information in application responses is stored in the local cache, then this may be retrieved by other users who have access to the same
computer at a future time.
  This rule is out of date. Nobody uses Internet Explorer anymore and Spire has never supported it. The entire internet uses HTTPS.  To suggest that caching HTTPS responses should be blocked would be, you're a significant negative effect on site performance and the user experience
 Incomplete Client-Side Inactivity Timeout Low When a user’s session expires, their active window is not redirected to a timeout or login page. Any information on the page remains exposed. Working as Designed.

This is currently designed behavior on Storefront, any action on a website after session timeout will redirect user to SignIn page.

 

  • Missing Content Security Policy
  • Insufficient Content Security Policy
Low
  • The application does not implement a
    Content Security Policy to act as a strong secondary layer of defense against injection attacks including XSS.
  • The application does not adequality protect itself from cross-site scripting vulnerabilities.
Working as Designed.

CSP is a blank-by-default admin console field.

If the default is to be something secure, it'll break some sites when they deploy the upgrade.

  • Weak Cipher Suites Supported 
  • Weak Encryption Strength 
Low
  • The web server supports cipher suites that introduce vulnerabilities into normally secure TLS 1.2 communication. 
  • With certain allowance of security protocols and/or
    encryption algorithms that have known vulnerabilities and may allow eavesdropping or tampering of transmitted data.
 

This is relates to a configuration in Cloudflare that is being taken into consideration.

 

Simultaneous User Sessions Allowed Low Threat actor would be able to access the
account at the same time as the user without the user's knowledge

 

 
Unauthorized Administrative Access Low An anonymous user on the internet can access administrative pages, which reveal password requirements about the administrator account.  

 

 Use of HTTP Basic Authentication Low The application utilizes HTTP basic authentication, which reveals username and passwords to anonymous users Working as Designed. Not an issue as described: TLS prevents unauthorized 3rd parties from monitoring communications between the browser and server.
Insufficient Cookie Protection Low When using the Remember Me functionality on login the new cookie that acts as a session cookie is not set with the HttpOnly directive. If an attacker identifies a Cross-Site Scripting (XSS) vulnerability they will be able to extract the cookie.

Working as Designed.

We use this cookie in JS code so it's not possible to mark it as httpOnly. 
Predictable Session Identifier Low The Remember Me functionality uses the same session cookie value when a user is authenticated. This increases the attack surface of the session cookie as it is static.    
Exposed Swagger UI  Low The swagger page is exposed to the public and reveals the API model including the admin API. Attackers may use this information to more easily target the API. Working as Designed. This doesn't leak access to any application data of any kind and isn't practically fixable as the API documentation is public and undocumented APIs can be reverse engineered from the JavaScript code.
Using Components with Known Vulnerabilities  Low The potential attack surface of the application is increased due to the usage of components with known vulnerabilities. These vulnerabilities could not be directly exploited in the current application context.    
Web Application Firewall Bypass Info/Low The Cloudflare Web Application Firewall (WAF) can be bypassed by simply adding 128 KB of benign junk data before any payload    

Reported Version

Cloud 

Cause

Medium and Low penetration test concerns.

Workaround

N\A

Resolutions will be posted below. Please use the Follow button to receive status updates.