Reino: Encapsulation
Encapsulamento consiste em traçar limites fortes. Em um navegador web, isso pode significar que seu código para dispositivos móveis não pode ser abusado por outros códigos para dispositivos móveis. No servidor, pode significar a diferenciação entre dados validados e não validados, entre os dados de dois usuários ou entre os dados que os usuários podem ou não acessar.
File Based Cross-Zone Scripting
Abstract
É perigoso carregar um arquivo capaz de executar scripts não confiáveis dentro do contexto do seu aplicativo.
Explanation
Erros de Execução de Scripts entre Zonas com Base em Arquivo ocorrem quando as seguintes condições são atendidas:
1. É carregado um arquivo capaz de permitir que scripts sejam executados dentro do seu aplicativo
2. O script carregado é considerado como sendo da mesma origem que o aplicativo em execução.
Quando essas duas condições são atendidas, uma série de ataques pode ser habilitada, especialmente se outras partes determinarem a confiança com base em se as informações são provenientes dos limites do seu aplicativo.
Exemplo 1: O código a seguir usa uma WebView do Android a fim de carregar um arquivo localmente:
No
Existem algumas maneiras típicas de um invasor se aproveitar de uma vulnerabilidade de Criação de Script entre Zonas com Base em Arquivo ao carregar um arquivo:
- o arquivo local pode ser manipulado por um invasor, que pode injetar script nesse arquivo.
Isso dependerá de permissões de arquivo, na localização do arquivo ou em condições de corrida, nas quais um arquivo pode ser salvo e então carregado (pode haver uma janela de tempo para modificação).
- o arquivo pode ser chamado para um recurso externo.
Isso pode ocorrer quando o arquivo carregado recupera scripts de um recurso externo.
Exemplo 2: O código a seguir examina uma fonte externa para determinar o JavaScript que ele deve executar.
No
- o arquivo carregado pode conter vulnerabilidades de criação de scripts entre sites.
Se o arquivo que está sendo carregado for capaz de ter código injetado, este talvez possa ser executado no contexto do seu aplicativo. Esta pode não ser necessariamente a capacidade de injetar JavaScript, mas a simples capacidade de injetar HTML também pode permitir invasões ou ataques de Negação de Serviço.
1. É carregado um arquivo capaz de permitir que scripts sejam executados dentro do seu aplicativo
2. O script carregado é considerado como sendo da mesma origem que o aplicativo em execução.
Quando essas duas condições são atendidas, uma série de ataques pode ser habilitada, especialmente se outras partes determinarem a confiança com base em se as informações são provenientes dos limites do seu aplicativo.
Exemplo 1: O código a seguir usa uma WebView do Android a fim de carregar um arquivo localmente:
...
myWebView.loadUrl("file:///android_asset/www/index.html");
...
No
Example 1
, o renderizador WebView do Android trata todo o conteúdo carregado com loadUrl()
, com uma URL começando com "file://" como estando na mesma origem.Existem algumas maneiras típicas de um invasor se aproveitar de uma vulnerabilidade de Criação de Script entre Zonas com Base em Arquivo ao carregar um arquivo:
- o arquivo local pode ser manipulado por um invasor, que pode injetar script nesse arquivo.
Isso dependerá de permissões de arquivo, na localização do arquivo ou em condições de corrida, nas quais um arquivo pode ser salvo e então carregado (pode haver uma janela de tempo para modificação).
- o arquivo pode ser chamado para um recurso externo.
Isso pode ocorrer quando o arquivo carregado recupera scripts de um recurso externo.
Exemplo 2: O código a seguir examina uma fonte externa para determinar o JavaScript que ele deve executar.
<script src="http://www.example.com/js/fancyWidget.js"></script>
No
Example 2
, está sendo usado um protocolo não seguro que poderia permitir que o script resultante seja modificado por um agente mal-intencionado. Como alternativa, outros ataques podem ser realizados para reencaminhar a máquina ao site de um invasor.- o arquivo carregado pode conter vulnerabilidades de criação de scripts entre sites.
Se o arquivo que está sendo carregado for capaz de ter código injetado, este talvez possa ser executado no contexto do seu aplicativo. Esta pode não ser necessariamente a capacidade de injetar JavaScript, mas a simples capacidade de injetar HTML também pode permitir invasões ou ataques de Negação de Serviço.
References
[1] Erika Chin and David Wagner Bifocals: Analyzing WebView Vulnerabilities in Android Applications
[2] Standards Mapping - Common Weakness Enumeration CWE ID 79, CWE ID 80
[3] Standards Mapping - Common Weakness Enumeration Top 25 2019 [2] CWE ID 079
[4] Standards Mapping - Common Weakness Enumeration Top 25 2020 [1] CWE ID 079
[5] Standards Mapping - Common Weakness Enumeration Top 25 2021 [2] CWE ID 079
[6] Standards Mapping - Common Weakness Enumeration Top 25 2022 [2] CWE ID 079
[7] Standards Mapping - Common Weakness Enumeration Top 25 2023 [2] CWE ID 079
[8] Standards Mapping - Common Weakness Enumeration Top 25 2024 [1] CWE ID 079
[9] Standards Mapping - DISA Control Correlation Identifier Version 2 CCI-002754
[10] Standards Mapping - FIPS200 SI
[11] Standards Mapping - General Data Protection Regulation (GDPR) Indirect Access to Sensitive Data
[12] Standards Mapping - NIST Special Publication 800-53 Revision 4 SI-10 Information Input Validation (P1)
[13] Standards Mapping - NIST Special Publication 800-53 Revision 5 SI-10 Information Input Validation
[14] Standards Mapping - OWASP Application Security Verification Standard 4.0 5.3.3 Output Encoding and Injection Prevention Requirements (L1 L2 L3), 5.3.6 Output Encoding and Injection Prevention Requirements (L1 L2 L3)
[15] Standards Mapping - OWASP Mobile 2014 M7 Client Side Injection
[16] Standards Mapping - OWASP Mobile Application Security Verification Standard 2.0 MASVS-CODE-4, MASVS-PLATFORM-2
[17] Standards Mapping - OWASP Top 10 2004 A4 Cross Site Scripting
[18] Standards Mapping - OWASP Top 10 2007 A1 Cross Site Scripting (XSS)
[19] Standards Mapping - OWASP Top 10 2010 A2 Cross-Site Scripting (XSS)
[20] Standards Mapping - OWASP Top 10 2013 A3 Cross-Site Scripting (XSS)
[21] Standards Mapping - OWASP Top 10 2017 A7 Cross-Site Scripting (XSS)
[22] Standards Mapping - OWASP Top 10 2021 A03 Injection
[23] Standards Mapping - Payment Card Industry Data Security Standard Version 1.1 Requirement 6.5.4
[24] Standards Mapping - Payment Card Industry Data Security Standard Version 1.2 Requirement 6.3.1.1, Requirement 6.5.1
[25] Standards Mapping - Payment Card Industry Data Security Standard Version 2.0 Requirement 6.5.7
[26] Standards Mapping - Payment Card Industry Data Security Standard Version 3.0 Requirement 6.5.7
[27] Standards Mapping - Payment Card Industry Data Security Standard Version 3.1 Requirement 6.5.7
[28] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2 Requirement 6.5.7
[29] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2.1 Requirement 6.5.7
[30] Standards Mapping - Payment Card Industry Data Security Standard Version 4.0 Requirement 6.2.4
[31] Standards Mapping - Payment Card Industry Data Security Standard Version 4.0.1 Requirement 6.2.4
[32] Standards Mapping - Payment Card Industry Software Security Framework 1.0 Control Objective 4.2 - Critical Asset Protection
[33] Standards Mapping - Payment Card Industry Software Security Framework 1.1 Control Objective 4.2 - Critical Asset Protection
[34] Standards Mapping - Payment Card Industry Software Security Framework 1.2 Control Objective 4.2 - Critical Asset Protection
[35] Standards Mapping - SANS Top 25 2009 Insecure Interaction - CWE ID 079
[36] Standards Mapping - SANS Top 25 2010 Insecure Interaction - CWE ID 079
[37] Standards Mapping - SANS Top 25 2011 Insecure Interaction - CWE ID 079
[38] Standards Mapping - Security Technical Implementation Guide Version 3.1 APP3510 CAT I, APP3580 CAT I
[39] Standards Mapping - Security Technical Implementation Guide Version 3.4 APP3510 CAT I, APP3580 CAT I
[40] Standards Mapping - Security Technical Implementation Guide Version 3.5 APP3510 CAT I, APP3580 CAT I
[41] Standards Mapping - Security Technical Implementation Guide Version 3.6 APP3510 CAT I, APP3580 CAT I
[42] Standards Mapping - Security Technical Implementation Guide Version 3.7 APP3510 CAT I, APP3580 CAT I
[43] Standards Mapping - Security Technical Implementation Guide Version 3.9 APP3510 CAT I, APP3580 CAT I
[44] Standards Mapping - Security Technical Implementation Guide Version 3.10 APP3510 CAT I, APP3580 CAT I
[45] Standards Mapping - Security Technical Implementation Guide Version 4.2 APSC-DV-002560 CAT I
[46] Standards Mapping - Security Technical Implementation Guide Version 4.3 APSC-DV-002560 CAT I
[47] Standards Mapping - Security Technical Implementation Guide Version 4.4 APSC-DV-002560 CAT I
[48] Standards Mapping - Security Technical Implementation Guide Version 4.5 APSC-DV-002560 CAT I
[49] Standards Mapping - Security Technical Implementation Guide Version 4.6 APSC-DV-002560 CAT I
[50] Standards Mapping - Security Technical Implementation Guide Version 4.7 APSC-DV-002560 CAT I
[51] Standards Mapping - Security Technical Implementation Guide Version 4.8 APSC-DV-002560 CAT I
[52] Standards Mapping - Security Technical Implementation Guide Version 4.9 APSC-DV-002560 CAT I
[53] Standards Mapping - Security Technical Implementation Guide Version 4.10 APSC-DV-002560 CAT I
[54] Standards Mapping - Security Technical Implementation Guide Version 4.11 APSC-DV-002560 CAT I
[55] Standards Mapping - Security Technical Implementation Guide Version 4.1 APSC-DV-002560 CAT I
[56] Standards Mapping - Security Technical Implementation Guide Version 5.1 APSC-DV-002560 CAT I
[57] Standards Mapping - Security Technical Implementation Guide Version 5.2 APSC-DV-002560 CAT I
[58] Standards Mapping - Security Technical Implementation Guide Version 5.3 APSC-DV-002560 CAT I
[59] Standards Mapping - Security Technical Implementation Guide Version 6.1 APSC-DV-002560 CAT I
[60] Standards Mapping - Web Application Security Consortium Version 2.00 Cross-Site Scripting (WASC-08)
[61] Standards Mapping - Web Application Security Consortium 24 + 2 Cross-Site Scripting
desc.semantic.java.file_based_cross_zone_scripting
Abstract
É perigoso carregar um arquivo local capaz de executar scripts não confiáveis dentro do contexto privilegiado do seu aplicativo.
Explanation
A execução de scripts entre zonas com base em arquivo ocorre quando as seguintes condições são atendidas:
1. É carregado um arquivo capaz de permitir que scripts sejam executados dentro do seu aplicativo.
2. O script carregado é considerado como tendo a mesma origem que o aplicativo em execução (
Quando essas duas condições são atendidas, uma série de ataques pode ser habilitada, especialmente se outras partes determinarem a confiança com base em se as informações são provenientes dos limites do seu aplicativo.
Exemplo 1: O código a seguir usa o método
No
Existem algumas maneiras típicas de um invasor se aproveitar de uma vulnerabilidade de execução de script entre zonas com base em arquivo ao carregar a partir de um arquivo:
- O arquivo local pode ser controlado pelo invasor. Por exemplo, o invasor pode enviar o arquivo para a sua vítima, que então o armazena no aplicativo vulnerável (por exemplo: um aplicativo de armazenamento na nuvem)
- O arquivo local pode ser manipulado por um invasor, que pode injetar script nesse arquivo. Isso dependerá de permissões de arquivo, na localização do arquivo ou em condições de corrida, nas quais um arquivo pode ser salvo e então carregado (pode haver uma janela de tempo para modificação).
- O arquivo pode ser chamado para um recurso externo. Isso pode ocorrer quando o arquivo carregado recupera scripts de um recurso externo.
- O arquivo carregado pode conter vulnerabilidades de execução de scripts entre sites. Se o arquivo que está sendo carregado contiver código injetado, talvez esse código possa ser executado no contexto do seu aplicativo. O código injetado não precisa ser o código JavaScript - um HTML injetado também pode permitir desfigurações ou ataques de negação de serviço.
Se o arquivo controlado pelo invasor for carregado localmente com uma URL
1. É carregado um arquivo capaz de permitir que scripts sejam executados dentro do seu aplicativo.
2. O script carregado é considerado como tendo a mesma origem que o aplicativo em execução (
file://
).Quando essas duas condições são atendidas, uma série de ataques pode ser habilitada, especialmente se outras partes determinarem a confiança com base em se as informações são provenientes dos limites do seu aplicativo.
Exemplo 1: O código a seguir usa o método
UIWebView.loadRequest(_:)
para carregar um arquivo local:
...
NSURL *url = [[NSBundle mainBundle] URLForResource: filename withExtension:extension];
[webView loadRequest:[[NSURLRequest alloc] initWithURL:url]];
...
No
Example 1
, o mecanismo WebView trata todo o conteúdo carregado com UIWebView.loadRequest(_:)
, com uma URL que começa com file://
, como estando na origem de arquivo local privilegiada.Existem algumas maneiras típicas de um invasor se aproveitar de uma vulnerabilidade de execução de script entre zonas com base em arquivo ao carregar a partir de um arquivo:
- O arquivo local pode ser controlado pelo invasor. Por exemplo, o invasor pode enviar o arquivo para a sua vítima, que então o armazena no aplicativo vulnerável (por exemplo: um aplicativo de armazenamento na nuvem)
- O arquivo local pode ser manipulado por um invasor, que pode injetar script nesse arquivo. Isso dependerá de permissões de arquivo, na localização do arquivo ou em condições de corrida, nas quais um arquivo pode ser salvo e então carregado (pode haver uma janela de tempo para modificação).
- O arquivo pode ser chamado para um recurso externo. Isso pode ocorrer quando o arquivo carregado recupera scripts de um recurso externo.
- O arquivo carregado pode conter vulnerabilidades de execução de scripts entre sites. Se o arquivo que está sendo carregado contiver código injetado, talvez esse código possa ser executado no contexto do seu aplicativo. O código injetado não precisa ser o código JavaScript - um HTML injetado também pode permitir desfigurações ou ataques de negação de serviço.
Se o arquivo controlado pelo invasor for carregado localmente com uma URL
file://
, a Política de mesma origem permitirá que os scripts nesse arquivo acessem qualquer outro arquivo da mesma origem, o que pode permitir que um invasor acesse qualquer arquivo local que contenha informações confidenciais.References
[1] Same-origin policy for file: URIs Mozilla
[2] Old Habits Die Hard: Cross-Zone Scripting in Dropbox & Google Drive Mobile Apps IBM
[3] loadHTMLString(_:baseURL:) API documentation Apple
[4] loadRequest(_:) API documentation Apple
[5] Standards Mapping - Common Weakness Enumeration CWE ID 79, CWE ID 80
[6] Standards Mapping - Common Weakness Enumeration Top 25 2019 [2] CWE ID 079
[7] Standards Mapping - Common Weakness Enumeration Top 25 2020 [1] CWE ID 079
[8] Standards Mapping - Common Weakness Enumeration Top 25 2021 [2] CWE ID 079
[9] Standards Mapping - Common Weakness Enumeration Top 25 2022 [2] CWE ID 079
[10] Standards Mapping - Common Weakness Enumeration Top 25 2023 [2] CWE ID 079
[11] Standards Mapping - Common Weakness Enumeration Top 25 2024 [1] CWE ID 079
[12] Standards Mapping - DISA Control Correlation Identifier Version 2 CCI-002754
[13] Standards Mapping - FIPS200 SI
[14] Standards Mapping - General Data Protection Regulation (GDPR) Indirect Access to Sensitive Data
[15] Standards Mapping - NIST Special Publication 800-53 Revision 4 SI-10 Information Input Validation (P1)
[16] Standards Mapping - NIST Special Publication 800-53 Revision 5 SI-10 Information Input Validation
[17] Standards Mapping - OWASP Application Security Verification Standard 4.0 5.3.3 Output Encoding and Injection Prevention Requirements (L1 L2 L3), 5.3.6 Output Encoding and Injection Prevention Requirements (L1 L2 L3)
[18] Standards Mapping - OWASP Mobile 2014 M7 Client Side Injection
[19] Standards Mapping - OWASP Mobile Application Security Verification Standard 2.0 MASVS-CODE-4, MASVS-PLATFORM-2
[20] Standards Mapping - OWASP Top 10 2004 A4 Cross Site Scripting
[21] Standards Mapping - OWASP Top 10 2007 A1 Cross Site Scripting (XSS)
[22] Standards Mapping - OWASP Top 10 2010 A2 Cross-Site Scripting (XSS)
[23] Standards Mapping - OWASP Top 10 2013 A3 Cross-Site Scripting (XSS)
[24] Standards Mapping - OWASP Top 10 2017 A7 Cross-Site Scripting (XSS)
[25] Standards Mapping - OWASP Top 10 2021 A03 Injection
[26] Standards Mapping - Payment Card Industry Data Security Standard Version 1.1 Requirement 6.5.4
[27] Standards Mapping - Payment Card Industry Data Security Standard Version 1.2 Requirement 6.3.1.1, Requirement 6.5.1
[28] Standards Mapping - Payment Card Industry Data Security Standard Version 2.0 Requirement 6.5.7
[29] Standards Mapping - Payment Card Industry Data Security Standard Version 3.0 Requirement 6.5.7
[30] Standards Mapping - Payment Card Industry Data Security Standard Version 3.1 Requirement 6.5.7
[31] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2 Requirement 6.5.7
[32] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2.1 Requirement 6.5.7
[33] Standards Mapping - Payment Card Industry Data Security Standard Version 4.0 Requirement 6.2.4
[34] Standards Mapping - Payment Card Industry Data Security Standard Version 4.0.1 Requirement 6.2.4
[35] Standards Mapping - Payment Card Industry Software Security Framework 1.0 Control Objective 4.2 - Critical Asset Protection
[36] Standards Mapping - Payment Card Industry Software Security Framework 1.1 Control Objective 4.2 - Critical Asset Protection
[37] Standards Mapping - Payment Card Industry Software Security Framework 1.2 Control Objective 4.2 - Critical Asset Protection
[38] Standards Mapping - SANS Top 25 2009 Insecure Interaction - CWE ID 079
[39] Standards Mapping - SANS Top 25 2010 Insecure Interaction - CWE ID 079
[40] Standards Mapping - SANS Top 25 2011 Insecure Interaction - CWE ID 079
[41] Standards Mapping - Security Technical Implementation Guide Version 3.1 APP3510 CAT I, APP3580 CAT I
[42] Standards Mapping - Security Technical Implementation Guide Version 3.4 APP3510 CAT I, APP3580 CAT I
[43] Standards Mapping - Security Technical Implementation Guide Version 3.5 APP3510 CAT I, APP3580 CAT I
[44] Standards Mapping - Security Technical Implementation Guide Version 3.6 APP3510 CAT I, APP3580 CAT I
[45] Standards Mapping - Security Technical Implementation Guide Version 3.7 APP3510 CAT I, APP3580 CAT I
[46] Standards Mapping - Security Technical Implementation Guide Version 3.9 APP3510 CAT I, APP3580 CAT I
[47] Standards Mapping - Security Technical Implementation Guide Version 3.10 APP3510 CAT I, APP3580 CAT I
[48] Standards Mapping - Security Technical Implementation Guide Version 4.2 APSC-DV-002560 CAT I
[49] Standards Mapping - Security Technical Implementation Guide Version 4.3 APSC-DV-002560 CAT I
[50] Standards Mapping - Security Technical Implementation Guide Version 4.4 APSC-DV-002560 CAT I
[51] Standards Mapping - Security Technical Implementation Guide Version 4.5 APSC-DV-002560 CAT I
[52] Standards Mapping - Security Technical Implementation Guide Version 4.6 APSC-DV-002560 CAT I
[53] Standards Mapping - Security Technical Implementation Guide Version 4.7 APSC-DV-002560 CAT I
[54] Standards Mapping - Security Technical Implementation Guide Version 4.8 APSC-DV-002560 CAT I
[55] Standards Mapping - Security Technical Implementation Guide Version 4.9 APSC-DV-002560 CAT I
[56] Standards Mapping - Security Technical Implementation Guide Version 4.10 APSC-DV-002560 CAT I
[57] Standards Mapping - Security Technical Implementation Guide Version 4.11 APSC-DV-002560 CAT I
[58] Standards Mapping - Security Technical Implementation Guide Version 4.1 APSC-DV-002560 CAT I
[59] Standards Mapping - Security Technical Implementation Guide Version 5.1 APSC-DV-002560 CAT I
[60] Standards Mapping - Security Technical Implementation Guide Version 5.2 APSC-DV-002560 CAT I
[61] Standards Mapping - Security Technical Implementation Guide Version 5.3 APSC-DV-002560 CAT I
[62] Standards Mapping - Security Technical Implementation Guide Version 6.1 APSC-DV-002560 CAT I
[63] Standards Mapping - Web Application Security Consortium Version 2.00 Cross-Site Scripting (WASC-08)
[64] Standards Mapping - Web Application Security Consortium 24 + 2 Cross-Site Scripting
desc.dataflow.objc.file_based_cross_zone_scripting
Abstract
É perigoso carregar um arquivo local capaz de executar scripts não confiáveis dentro do contexto privilegiado do seu aplicativo.
Explanation
A execução de scripts entre zonas com base em arquivo ocorre quando as seguintes condições são atendidas:
1. É carregado um arquivo capaz de permitir que scripts sejam executados dentro do seu aplicativo.
2. O script carregado é considerado como tendo a mesma origem que o aplicativo em execução (
Quando essas duas condições são atendidas, uma série de ataques pode ser habilitada, especialmente se outras partes determinarem a confiança com base em se as informações são provenientes dos limites do seu aplicativo.
Exemplo 1: O código a seguir usa o método
No
Existem algumas maneiras típicas de um invasor se aproveitar de uma vulnerabilidade de execução de script entre zonas com base em arquivo ao carregar a partir de um arquivo:
- O arquivo local pode ser controlado pelo invasor. Por exemplo, o invasor pode enviar o arquivo para a sua vítima, que então o armazena no aplicativo vulnerável (por exemplo: um aplicativo de armazenamento na nuvem)
- O arquivo local pode ser manipulado por um invasor, que pode injetar script nesse arquivo. Isso dependerá de permissões de arquivo, na localização do arquivo ou em condições de corrida, nas quais um arquivo pode ser salvo e então carregado (pode haver uma janela de tempo para modificação).
- O arquivo pode ser chamado para um recurso externo. Isso pode ocorrer quando o arquivo carregado recupera scripts de um recurso externo.
- O arquivo carregado pode conter vulnerabilidades de execução de scripts entre sites. Se o arquivo que está sendo carregado contiver código injetado, talvez esse código possa ser executado no contexto do seu aplicativo. O código injetado não precisa ser o código JavaScript - um HTML injetado também pode permitir desfigurações ou ataques de negação de serviço.
Se o arquivo controlado pelo invasor for carregado localmente com uma URL
1. É carregado um arquivo capaz de permitir que scripts sejam executados dentro do seu aplicativo.
2. O script carregado é considerado como tendo a mesma origem que o aplicativo em execução (
file://
).Quando essas duas condições são atendidas, uma série de ataques pode ser habilitada, especialmente se outras partes determinarem a confiança com base em se as informações são provenientes dos limites do seu aplicativo.
Exemplo 1: O código a seguir usa o método
UIWebView.loadRequest(_:)
para carregar um arquivo local:
...
let url = Bundle.main.url(forResource: filename, withExtension: extension)
self.webView!.load(URLRequest(url:url!))
...
No
Example 1
, o mecanismo WebView trata todo o conteúdo carregado com UIWebView.loadRequest(_:)
, com uma URL que começa com file://
, como estando na origem de arquivo local privilegiada.Existem algumas maneiras típicas de um invasor se aproveitar de uma vulnerabilidade de execução de script entre zonas com base em arquivo ao carregar a partir de um arquivo:
- O arquivo local pode ser controlado pelo invasor. Por exemplo, o invasor pode enviar o arquivo para a sua vítima, que então o armazena no aplicativo vulnerável (por exemplo: um aplicativo de armazenamento na nuvem)
- O arquivo local pode ser manipulado por um invasor, que pode injetar script nesse arquivo. Isso dependerá de permissões de arquivo, na localização do arquivo ou em condições de corrida, nas quais um arquivo pode ser salvo e então carregado (pode haver uma janela de tempo para modificação).
- O arquivo pode ser chamado para um recurso externo. Isso pode ocorrer quando o arquivo carregado recupera scripts de um recurso externo.
- O arquivo carregado pode conter vulnerabilidades de execução de scripts entre sites. Se o arquivo que está sendo carregado contiver código injetado, talvez esse código possa ser executado no contexto do seu aplicativo. O código injetado não precisa ser o código JavaScript - um HTML injetado também pode permitir desfigurações ou ataques de negação de serviço.
Se o arquivo controlado pelo invasor for carregado localmente com uma URL
file://
, a Política de mesma origem permitirá que os scripts nesse arquivo acessem qualquer outro arquivo da mesma origem, o que pode permitir que um invasor acesse qualquer arquivo local que contenha informações confidenciais.References
[1] Same-origin policy for file: URIs Mozilla
[2] Old Habits Die Hard: Cross-Zone Scripting in Dropbox & Google Drive Mobile Apps IBM
[3] loadHTMLString(_:baseURL:) API documentation Apple
[4] loadRequest(_:) API documentation Apple
[5] Standards Mapping - Common Weakness Enumeration CWE ID 79, CWE ID 80
[6] Standards Mapping - Common Weakness Enumeration Top 25 2019 [2] CWE ID 079
[7] Standards Mapping - Common Weakness Enumeration Top 25 2020 [1] CWE ID 079
[8] Standards Mapping - Common Weakness Enumeration Top 25 2021 [2] CWE ID 079
[9] Standards Mapping - Common Weakness Enumeration Top 25 2022 [2] CWE ID 079
[10] Standards Mapping - Common Weakness Enumeration Top 25 2023 [2] CWE ID 079
[11] Standards Mapping - Common Weakness Enumeration Top 25 2024 [1] CWE ID 079
[12] Standards Mapping - DISA Control Correlation Identifier Version 2 CCI-002754
[13] Standards Mapping - FIPS200 SI
[14] Standards Mapping - General Data Protection Regulation (GDPR) Indirect Access to Sensitive Data
[15] Standards Mapping - NIST Special Publication 800-53 Revision 4 SI-10 Information Input Validation (P1)
[16] Standards Mapping - NIST Special Publication 800-53 Revision 5 SI-10 Information Input Validation
[17] Standards Mapping - OWASP Application Security Verification Standard 4.0 5.3.3 Output Encoding and Injection Prevention Requirements (L1 L2 L3), 5.3.6 Output Encoding and Injection Prevention Requirements (L1 L2 L3)
[18] Standards Mapping - OWASP Mobile 2014 M7 Client Side Injection
[19] Standards Mapping - OWASP Mobile Application Security Verification Standard 2.0 MASVS-CODE-4, MASVS-PLATFORM-2
[20] Standards Mapping - OWASP Top 10 2004 A4 Cross Site Scripting
[21] Standards Mapping - OWASP Top 10 2007 A1 Cross Site Scripting (XSS)
[22] Standards Mapping - OWASP Top 10 2010 A2 Cross-Site Scripting (XSS)
[23] Standards Mapping - OWASP Top 10 2013 A3 Cross-Site Scripting (XSS)
[24] Standards Mapping - OWASP Top 10 2017 A7 Cross-Site Scripting (XSS)
[25] Standards Mapping - OWASP Top 10 2021 A03 Injection
[26] Standards Mapping - Payment Card Industry Data Security Standard Version 1.1 Requirement 6.5.4
[27] Standards Mapping - Payment Card Industry Data Security Standard Version 1.2 Requirement 6.3.1.1, Requirement 6.5.1
[28] Standards Mapping - Payment Card Industry Data Security Standard Version 2.0 Requirement 6.5.7
[29] Standards Mapping - Payment Card Industry Data Security Standard Version 3.0 Requirement 6.5.7
[30] Standards Mapping - Payment Card Industry Data Security Standard Version 3.1 Requirement 6.5.7
[31] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2 Requirement 6.5.7
[32] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2.1 Requirement 6.5.7
[33] Standards Mapping - Payment Card Industry Data Security Standard Version 4.0 Requirement 6.2.4
[34] Standards Mapping - Payment Card Industry Data Security Standard Version 4.0.1 Requirement 6.2.4
[35] Standards Mapping - Payment Card Industry Software Security Framework 1.0 Control Objective 4.2 - Critical Asset Protection
[36] Standards Mapping - Payment Card Industry Software Security Framework 1.1 Control Objective 4.2 - Critical Asset Protection
[37] Standards Mapping - Payment Card Industry Software Security Framework 1.2 Control Objective 4.2 - Critical Asset Protection
[38] Standards Mapping - SANS Top 25 2009 Insecure Interaction - CWE ID 079
[39] Standards Mapping - SANS Top 25 2010 Insecure Interaction - CWE ID 079
[40] Standards Mapping - SANS Top 25 2011 Insecure Interaction - CWE ID 079
[41] Standards Mapping - Security Technical Implementation Guide Version 3.1 APP3510 CAT I, APP3580 CAT I
[42] Standards Mapping - Security Technical Implementation Guide Version 3.4 APP3510 CAT I, APP3580 CAT I
[43] Standards Mapping - Security Technical Implementation Guide Version 3.5 APP3510 CAT I, APP3580 CAT I
[44] Standards Mapping - Security Technical Implementation Guide Version 3.6 APP3510 CAT I, APP3580 CAT I
[45] Standards Mapping - Security Technical Implementation Guide Version 3.7 APP3510 CAT I, APP3580 CAT I
[46] Standards Mapping - Security Technical Implementation Guide Version 3.9 APP3510 CAT I, APP3580 CAT I
[47] Standards Mapping - Security Technical Implementation Guide Version 3.10 APP3510 CAT I, APP3580 CAT I
[48] Standards Mapping - Security Technical Implementation Guide Version 4.2 APSC-DV-002560 CAT I
[49] Standards Mapping - Security Technical Implementation Guide Version 4.3 APSC-DV-002560 CAT I
[50] Standards Mapping - Security Technical Implementation Guide Version 4.4 APSC-DV-002560 CAT I
[51] Standards Mapping - Security Technical Implementation Guide Version 4.5 APSC-DV-002560 CAT I
[52] Standards Mapping - Security Technical Implementation Guide Version 4.6 APSC-DV-002560 CAT I
[53] Standards Mapping - Security Technical Implementation Guide Version 4.7 APSC-DV-002560 CAT I
[54] Standards Mapping - Security Technical Implementation Guide Version 4.8 APSC-DV-002560 CAT I
[55] Standards Mapping - Security Technical Implementation Guide Version 4.9 APSC-DV-002560 CAT I
[56] Standards Mapping - Security Technical Implementation Guide Version 4.10 APSC-DV-002560 CAT I
[57] Standards Mapping - Security Technical Implementation Guide Version 4.11 APSC-DV-002560 CAT I
[58] Standards Mapping - Security Technical Implementation Guide Version 4.1 APSC-DV-002560 CAT I
[59] Standards Mapping - Security Technical Implementation Guide Version 5.1 APSC-DV-002560 CAT I
[60] Standards Mapping - Security Technical Implementation Guide Version 5.2 APSC-DV-002560 CAT I
[61] Standards Mapping - Security Technical Implementation Guide Version 5.3 APSC-DV-002560 CAT I
[62] Standards Mapping - Security Technical Implementation Guide Version 6.1 APSC-DV-002560 CAT I
[63] Standards Mapping - Web Application Security Consortium Version 2.00 Cross-Site Scripting (WASC-08)
[64] Standards Mapping - Web Application Security Consortium 24 + 2 Cross-Site Scripting
desc.dataflow.swift.file_based_cross_zone_scripting