FixVibe
Covered by FixVibehigh

CORS ತಪ್ಪು ಸಂರಚನೆ: ಅತಿಯಾಗಿ ಅನುಮತಿಸುವ ನೀತಿಗಳ ಅಪಾಯಗಳು ZXCVFIXVIBSEGEND ZXCVFIXVIBESEG1 CORS ತಪ್ಪು ಕಾನ್ಫಿಗರೇಶನ್‌ಗಳು ದಾಳಿಕೋರರಿಗೆ ಒಂದೇ ಮೂಲ ನೀತಿಯನ್ನು ಬೈಪಾಸ್ ಮಾಡಲು ಮತ್ತು ZXCVFIXVIBETOKEN1ZXCV-ರಚಿತ ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಂದ ಸೂಕ್ಷ್ಮ ಬಳಕೆದಾರರ ಡೇಟಾವನ್ನು ಕದಿಯಲು ಹೇಗೆ ಅನುಮತಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ತಿಳಿಯಿರಿ. ZXCVFIXVIBSEGEND ZXCVFIXVIBESEG2 ಕ್ರಾಸ್-ಆರಿಜಿನ್ ರಿಸೋರ್ಸ್ ಶೇರಿಂಗ್ (CORS) ಎಂಬುದು ಒಂದೇ ಮೂಲ ನೀತಿಯನ್ನು (SOP) ಸಡಿಲಿಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾದ ಬ್ರೌಸರ್ ಕಾರ್ಯವಿಧಾನವಾಗಿದೆ. ಆಧುನಿಕ ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗೆ ಅಗತ್ಯವಿದ್ದರೂ, ವಿನಂತಿಸಿದವರ ಮೂಲ ಹೆಡರ್ ಅನ್ನು ಪ್ರತಿಧ್ವನಿಸುವುದು ಅಥವಾ 'ಶೂನ್ಯ' ಮೂಲವನ್ನು ಶ್ವೇತಪಟ್ಟಿ ಮಾಡುವಂತಹ ಅಸಮರ್ಪಕ ಅನುಷ್ಠಾನವು ದುರುದ್ದೇಶಪೂರಿತ ಸೈಟ್‌ಗಳು ಖಾಸಗಿ ಬಳಕೆದಾರರ ಡೇಟಾವನ್ನು ಹೊರಹಾಕಲು ಅನುಮತಿಸಬಹುದು. ZXCVFIXVIBSEGEND ZXCVFIXVIBESEG3 ## ಪರಿಣಾಮ ZXCVFIXVIBSEGEND ZXCVFIXVIBESEG4 ಆಕ್ರಮಣಕಾರರು ದುರ್ಬಲ ಅಪ್ಲಿಕೇಶನ್ CORS ಬಳಕೆದಾರರಿಂದ ಸೂಕ್ಷ್ಮವಾದ, ದೃಢೀಕರಿಸಿದ ಡೇಟಾವನ್ನು ಕದಿಯಬಹುದು. ದುರ್ಬಲ ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಲಾಗ್ ಇನ್ ಆಗಿರುವಾಗ ಬಳಕೆದಾರರು ದುರುದ್ದೇಶಪೂರಿತ ವೆಬ್‌ಸೈಟ್‌ಗೆ ಭೇಟಿ ನೀಡಿದರೆ, ದುರುದ್ದೇಶಪೂರಿತ ಸೈಟ್ ಅಪ್ಲಿಕೇಶನ್‌ನ ZXCVFIXVIBETOKEN4ZXCV ಗೆ ಅಡ್ಡ-ಮೂಲದ ವಿನಂತಿಗಳನ್ನು ಮಾಡಬಹುದು ಮತ್ತು ZXCVFIXVIBETOKEN1ZXCVZXCVFIXVIBETOKEN2ZXCV ಪ್ರತಿಕ್ರಿಯೆಗಳನ್ನು ಓದಬಹುದು. ಇದು ಬಳಕೆದಾರರ ಪ್ರೊಫೈಲ್‌ಗಳು, CSRF ಟೋಕನ್‌ಗಳು ಅಥವಾ ಖಾಸಗಿ ಸಂದೇಶಗಳು ZXCVFIXVIBETOKEN3ZXCV ಸೇರಿದಂತೆ ಖಾಸಗಿ ಮಾಹಿತಿಯ ಕಳ್ಳತನಕ್ಕೆ ಕಾರಣವಾಗಬಹುದು. ZXCVFIXVIBSEGEND ZXCVFIXVIBESEG5 ## ಮೂಲ ಕಾರಣ ZXCVFIXVIBSEGEND ZXCVFIXVIBESEG6 ZXCVFIXVIBETOKEN2ZXCV ಎಂಬುದು HTTP-ಹೆಡರ್ ಆಧಾರಿತ ಕಾರ್ಯವಿಧಾನವಾಗಿದ್ದು, CORS ಸಂಪನ್ಮೂಲಗಳನ್ನು ಲೋಡ್ ಮಾಡಲು ಯಾವ ಮೂಲಗಳನ್ನು (ಡೊಮೇನ್, ಸ್ಕೀಮ್, ಅಥವಾ ಪೋರ್ಟ್) ಅನುಮತಿಸಲಾಗಿದೆ ಎಂಬುದನ್ನು ಸೂಚಿಸಲು ಸರ್ವರ್‌ಗಳಿಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಸರ್ವರ್‌ನ ZXCVFIXVIBETOKEN3ZXCV ನೀತಿಯು ತುಂಬಾ ಹೊಂದಿಕೊಳ್ಳುವ ಅಥವಾ ಕಳಪೆಯಾಗಿ ಅನುಷ್ಠಾನಗೊಳಿಸಿದಾಗ ದೋಷಗಳು ಸಾಮಾನ್ಯವಾಗಿ ಉದ್ಭವಿಸುತ್ತವೆ ZXCVFIXVIBETOKEN1ZXCV: ZXCVFIXVIBSEGEND ZXCVFIXVIBESEG7 * ** ಪ್ರತಿಬಿಂಬಿತ ಮೂಲ ಶಿರೋಲೇಖ:** ಕೆಲವು ಸರ್ವರ್‌ಗಳು ಕ್ಲೈಂಟ್ ವಿನಂತಿಯಿಂದ CORS ಹೆಡರ್ ಅನ್ನು ಓದುತ್ತವೆ ಮತ್ತು ಅದನ್ನು ZXCVFIXVIBETOKEN1ZXCV (ACAO) ಪ್ರತಿಕ್ರಿಯೆ ಹೆಡರ್ ZXCVFIXVIBETOKEN2ZXCV ನಲ್ಲಿ ಮತ್ತೆ ಪ್ರತಿಧ್ವನಿಸುತ್ತದೆ. ZXCVFIXVIBETOKEN3ZXCV ಸಂಪನ್ಮೂಲವನ್ನು ಪ್ರವೇಶಿಸಲು ಇದು ಯಾವುದೇ ವೆಬ್‌ಸೈಟ್ ಅನ್ನು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಅನುಮತಿಸುತ್ತದೆ. ZXCVFIXVIBSEGEND ZXCVFIXVIBESEG8 * **ತಪ್ಪಾಗಿ ಕಾನ್ಫಿಗರ್ ಮಾಡಲಾದ ವೈಲ್ಡ್‌ಕಾರ್ಡ್‌ಗಳು:** CORS ವೈಲ್ಡ್‌ಕಾರ್ಡ್ ಸಂಪನ್ಮೂಲವನ್ನು ಪ್ರವೇಶಿಸಲು ಯಾವುದೇ ಮೂಲವನ್ನು ಅನುಮತಿಸಿದರೆ, ರುಜುವಾತುಗಳ ಅಗತ್ಯವಿರುವ ವಿನಂತಿಗಳಿಗೆ (ಕುಕೀಸ್ ಅಥವಾ ದೃಢೀಕರಣ ಹೆಡರ್‌ಗಳಂತಹ) ZXCVFIXVIBETOKEN1ZXCV ಅನ್ನು ಬಳಸಲಾಗುವುದಿಲ್ಲ. ZXCVFIXVIBETOKEN2ZXCV ವಿನಂತಿಯ ಆಧಾರದ ಮೇಲೆ ACAO ಹೆಡರ್ ಅನ್ನು ಕ್ರಿಯಾತ್ಮಕವಾಗಿ ರಚಿಸುವ ಮೂಲಕ ಡೆವಲಪರ್‌ಗಳು ಆಗಾಗ್ಗೆ ಇದನ್ನು ಬೈಪಾಸ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸುತ್ತಾರೆ. ZXCVFIXVIBSEGEND ZXCVFIXVIBESEG9 * ** 'ಶೂನ್ಯ' ಶ್ವೇತಪಟ್ಟಿ:** ಕೆಲವು ಅಪ್ಲಿಕೇಶನ್‌ಗಳು CORS ಮೂಲವನ್ನು ಶ್ವೇತಪಟ್ಟಿ ಮಾಡುತ್ತವೆ, ಮರುನಿರ್ದೇಶಿಸಲಾದ ವಿನಂತಿಗಳು ಅಥವಾ ಸ್ಥಳೀಯ ಫೈಲ್‌ಗಳಿಂದ ಪ್ರಚೋದಿಸಬಹುದು, ಪ್ರವೇಶವನ್ನು ಪಡೆಯಲು ದುರುದ್ದೇಶಪೂರಿತ ಸೈಟ್‌ಗಳನ್ನು ZXCVFIXVIBETOKEN1ZXCV ಮೂಲದಂತೆ ಮಾಸ್ಕ್ವೆರೇಡ್ ಮಾಡಲು ಅನುಮತಿಸುತ್ತದೆ ZXCVFIXVIBETOKEN2ZXCVZXCVFIXVIBETOKEN3ZXCV. ZXCVFIXVIBSEGEND ZXCVFIXVIBESEG10 * ** ಪಾರ್ಸಿಂಗ್ ದೋಷಗಳು:** CORS ಹೆಡರ್ ಅನ್ನು ಮೌಲ್ಯೀಕರಿಸುವಾಗ ರಿಜೆಕ್ಸ್ ಅಥವಾ ಸ್ಟ್ರಿಂಗ್ ಹೊಂದಾಣಿಕೆಯಲ್ಲಿನ ತಪ್ಪುಗಳು ದಾಳಿಕೋರರು ZXCVFIXVIBETOKEN1ZXCV ZXCVFIXVIBETOKEN2ZXCV ನಂತಹ ಡೊಮೇನ್‌ಗಳನ್ನು ಬಳಸಲು ಅನುಮತಿಸಬಹುದು. ZXCVFIXVIBSEGEND ZXCVFIXVIBESEG11 ZXCVFIXVIBETOKEN1ZXCV ಕ್ರಾಸ್-ಸೈಟ್ ರಿಕ್ವೆಸ್ಟ್ ಫೋರ್ಜರಿ (CSRF) CORS ವಿರುದ್ಧ ರಕ್ಷಣೆಯಾಗಿಲ್ಲ ಎಂಬುದನ್ನು ಗಮನಿಸುವುದು ಮುಖ್ಯವಾಗಿದೆ. ZXCVFIXVIBSEGEND ZXCVFIXVIBESEG12 ## ಕಾಂಕ್ರೀಟ್ ಪರಿಹಾರಗಳು ZXCVFIXVIBSEGEND ZXCVFIXVIBESEG13 * **ಸ್ಟ್ಯಾಟಿಕ್ ವೈಟ್‌ಲಿಸ್ಟ್ ಅನ್ನು ಬಳಸಿ:** ವಿನಂತಿಯ ZXCVFIXVIBETOKEN1ZXCV ಹೆಡರ್ ZXCVFIXVIBETOKEN2ZXCV ನಿಂದ CORS ಹೆಡರ್ ಅನ್ನು ಕ್ರಿಯಾತ್ಮಕವಾಗಿ ರಚಿಸುವುದನ್ನು ತಪ್ಪಿಸಿ. ಬದಲಿಗೆ, ಹಾರ್ಡ್‌ಕೋಡ್ ಮಾಡಲಾದ ವಿಶ್ವಾಸಾರ್ಹ ಡೊಮೇನ್‌ಗಳ ZXCVFIXVIBETOKEN3ZXCV ಪಟ್ಟಿಯೊಂದಿಗೆ ವಿನಂತಿಯ ಮೂಲವನ್ನು ಹೋಲಿಕೆ ಮಾಡಿ. ZXCVFIXVIBSEGEND ZXCVFIXVIBESEG14 * **'ಶೂನ್ಯ' ಮೂಲವನ್ನು ತಪ್ಪಿಸಿ:** CORS ಅನ್ನು ನಿಮ್ಮ ಅನುಮತಿಸಲಾದ ಮೂಲಗಳ ಶ್ವೇತಪಟ್ಟಿಯಲ್ಲಿ ಎಂದಿಗೂ ಸೇರಿಸಬೇಡಿ ZXCVFIXVIBETOKEN1ZXCV. ZXCVFIXVIBSEGEND ZXCVFIXVIBESEG15 * ** ರುಜುವಾತುಗಳನ್ನು ನಿರ್ಬಂಧಿಸಿ:** ನಿರ್ದಿಷ್ಟ ಕ್ರಾಸ್-ಆರಿಜಿನ್ ಇಂಟರ್ಯಾಕ್ಷನ್ ZXCVFIXVIBETOKEN1ZXCV ಗೆ ಸಂಪೂರ್ಣವಾಗಿ ಅಗತ್ಯವಿದ್ದರೆ ಮಾತ್ರ CORS ಅನ್ನು ಹೊಂದಿಸಿ. ZXCVFIXVIBSEGEND ZXCVFIXVIBESEG16 * **ಸರಿಯಾದ ಮೌಲ್ಯೀಕರಣವನ್ನು ಬಳಸಿ:** ನೀವು ಬಹು ಮೂಲಗಳನ್ನು ಬೆಂಬಲಿಸಬೇಕಾದರೆ, CORS ಹೆಡರ್‌ಗಾಗಿ ಮೌಲ್ಯೀಕರಣ ತರ್ಕವು ದೃಢವಾಗಿದೆ ಮತ್ತು ಸಬ್‌ಡೊಮೇನ್‌ಗಳು ಅಥವಾ ಒಂದೇ ರೀತಿಯ ಡೊಮೇನ್‌ಗಳಿಂದ ಬೈಪಾಸ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ ZXCVFIXVIBETOKEN1ZXCV. ZXCVFIXVIBSEGEND ZXCVFIXVIBESEG17 ## CORS ಹೇಗೆ ಪರೀಕ್ಷಿಸುತ್ತದೆ ZXCVFIXVIBSEGEND ZXCVFIXVIBESEG18 ZXCVFIXVIBETOKEN1ZXCV ಈಗ ಇದನ್ನು ಗೇಟೆಡ್ ಆಕ್ಟಿವ್ ಚೆಕ್ ಆಗಿ ಒಳಗೊಂಡಿದೆ. ಡೊಮೇನ್ ಪರಿಶೀಲನೆಯ ನಂತರ, CORS ಸಿಂಥೆಟಿಕ್ ಆಕ್ರಮಣಕಾರರ ಮೂಲದೊಂದಿಗೆ ಅದೇ ಮೂಲದ ZXCVFIXVIBETOKEN2ZXCV ವಿನಂತಿಗಳನ್ನು ಕಳುಹಿಸುತ್ತದೆ ಮತ್ತು ZXCVFIXVIBETOKEN4ZXCV ಪ್ರತಿಕ್ರಿಯೆ ಹೆಡರ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ. ಇದು ಪ್ರತಿಬಿಂಬಿತ ಅನಿಯಂತ್ರಿತ ಮೂಲಗಳು, ವೈಲ್ಡ್‌ಕಾರ್ಡ್ ರುಜುವಾತುಗಳನ್ನು ಹೊಂದಿರುವ ZXCVFIXVIBETOKEN5ZXCV, ಮತ್ತು ಸಾರ್ವಜನಿಕವಲ್ಲದ ZXCVFIXVIBETOKEN3ZXCV ಅಂತ್ಯಬಿಂದುಗಳಲ್ಲಿ ಸಾರ್ವಜನಿಕ ಸ್ವತ್ತುಗಳ ಶಬ್ದವನ್ನು ತಪ್ಪಿಸುವಾಗ ವ್ಯಾಪಕ-ತೆರೆದ ZXCVFIXVIBETOKEN6ZXCV ಅನ್ನು ವರದಿ ಮಾಡುತ್ತದೆ.

Cross-Origin Resource Sharing (CORS) is a browser mechanism designed to relax the Same-Origin Policy (SOP). While necessary for modern web apps, improper implementation—such as echoing the requester's Origin header or whitelisting the 'null' origin—can allow malicious sites to exfiltrate private user data.

CWE-942

Impact

An attacker can steal sensitive, authenticated data from users of a vulnerable application [S2]. If a user visits a malicious website while logged into the vulnerable app, the malicious site can make cross-origin requests to the app's API and read the responses [S1][S2]. This can lead to the theft of private information, including user profiles, CSRF tokens, or private messages [S2].

Root Cause

CORS is an HTTP-header based mechanism that allows servers to specify which origins (domain, scheme, or port) are permitted to load resources [S1]. Vulnerabilities typically arise when a server's CORS policy is too flexible or poorly implemented [S2]:

  • Reflected Origin Header: Some servers read the Origin header from a client request and echo it back in the Access-Control-Allow-Origin (ACAO) response header [S2]. This effectively allows any website to access the resource [S2].
  • Misconfigured Wildcards: While the * wildcard allows any origin to access a resource, it cannot be used for requests that require credentials (like cookies or Authorization headers) [S3]. Developers often try to bypass this by dynamically generating the ACAO header based on the request [S2].
  • Whitelisting 'null': Some applications whitelist the null origin, which can be triggered by redirected requests or local files, allowing malicious sites to masquerade as a null origin to gain access [S2][S3].
  • Parsing Errors: Mistakes in regex or string matching when validating the Origin header can allow attackers to use domains like trusted-domain.com.attacker.com [S2].

It is important to note that CORS is not a protection against Cross-Site Request Forgery (CSRF) [S2].

Concrete Fixes

  • Use a Static Whitelist: Avoid dynamically generating the Access-Control-Allow-Origin header from the request's Origin header [S2]. Instead, compare the request's origin against a hardcoded list of trusted domains [S3].
  • Avoid the 'null' Origin: Never include null in your whitelist of allowed origins [S2].
  • Restrict Credentials: Only set Access-Control-Allow-Credentials: true if absolutely necessary for the specific cross-origin interaction [S3].
  • Use Proper Validation: If you must support multiple origins, ensure the validation logic for the Origin header is robust and cannot be bypassed by subdomains or similar-looking domains [S2].

How FixVibe tests for it

FixVibe now includes this as a gated active check. After domain verification, active.cors sends same-origin API requests with a synthetic attacker origin and reviews CORS response headers. It reports reflected arbitrary origins, wildcard credentialed CORS, and wide-open CORS on non-public API endpoints while avoiding public asset noise.