CRITICAL
Rule Definition
If read access is not properly restricted, then attackers can steal the sensitive information. If write access is not properly restricted, then attackers can modify and possibly delete the data, causing incorrect results and possibly a denial of service.
The cookies with an overly broad domain can be accessed by all web applications deployed on this domain and its sub-domains. A cookie with sensitive data, but with too broad a domain, could hence be read and tampered with by a less secure and untrusted application.
Remediation
Do not provide a domain with wildcard access
Violation Code Sample
angular.module('cookiesExample', ['ngCookies'])
.controller('ExampleController', ['$cookies', function($cookies) {
let config = {
domain: '.example.com'
};
// Setting a cookie
$cookies.put('myFavorite', 'oatmeal',config);
}]);
Fixed Code Sample
angular.module('cookiesExample', ['ngCookies'])
.controller('ExampleController', ['$cookies', function($cookies) {
let config = {
domain: 'secure.example.com'
};
// Setting a cookie
$cookies.put('myFavorite', 'oatmeal',config);
}]);
Reference
https://docs.angularjs.org/api/ngCookies/service/$cookies
https://cwe.mitre.org/data/definitions/287.html
https://www.owasp.org/index.php/Top_10_2013-A6-Sensitive_Data_Exposure
https://www.owasp.org/index.php/Top_10-2017_A3-Sensitive_Data_Exposure
Related Technologies
Technical Criterion
Secure Coding - Weak Security Features
About CAST Appmarq
CAST Appmarq is by far the biggest repository of data about real IT systems. It's built on thousands of analyzed applications, made of 35 different technologies, by over 300 business organizations across major verticals. It provides IT Leaders with factual key analytics to let them know if their applications are on track.