SonarSource Rules
  • Products

    In-IDE

    Code Quality and Security in your IDE with SonarQube Ide

    IDE extension that lets you fix coding issues before they exist!

    Discover SonarQube for IDE

    SaaS

    Code Quality and Security in the cloud with SonarQube Cloud

    Setup is effortless and analysis is automatic for most languages

    Discover SonarQube Cloud

    Self-Hosted

    Code Quality and Security Self-Hosted with SonarQube Server

    Fast, accurate analysis; enterprise scalability

    Discover SonarQube Server
  • SecretsSecrets
  • ABAPABAP
  • AnsibleAnsible
  • ApexApex
  • AzureResourceManagerAzureResourceManager
  • CC
  • C#C#
  • C++C++
  • CloudFormationCloudFormation
  • COBOLCOBOL
  • CSSCSS
  • DartDart
  • DockerDocker
  • FlexFlex
  • GitHub ActionsGitHub Actions
  • GoGo
  • HTMLHTML
  • JavaJava
  • JavaScriptJavaScript
  • JSONJSON
  • JCLJCL
  • KotlinKotlin
  • KubernetesKubernetes
  • Objective CObjective C
  • PHPPHP
  • PL/IPL/I
  • PL/SQLPL/SQL
  • PythonPython
  • RPGRPG
  • RubyRuby
  • RustRust
  • ScalaScala
  • ShellShell
  • SwiftSwift
  • TerraformTerraform
  • TextText
  • TypeScriptTypeScript
  • T-SQLT-SQL
  • VB.NETVB.NET
  • VB6VB6
  • XMLXML
  • YAMLYAML
XML

XML static code analysis

Unique rules to find Bugs and Code Smells in your XML code

  • All rules 37
  • Vulnerability7
  • Bug5
  • Security Hotspot9
  • Code Smell16
 
Tags
    Impact
      Clean code attribute
        1. Components should be explicitly exported

           Vulnerability
        2. Defining a single permission for read and write access of content providers is security-sensitive

           Security Hotspot
        3. Custom permissions should not be defined in the "android.permission" namespace

           Vulnerability
        4. Allowing application backups is security-sensitive

           Security Hotspot
        5. Requesting dangerous Android permissions is security-sensitive

           Security Hotspot
        6. Exported component access should be restricted with appropriate permissions

           Vulnerability
        7. Using clear-text protocols is security-sensitive

           Security Hotspot
        8. Receiving intents is security-sensitive

           Security Hotspot
        9. Having a permissive Cross-Origin Resource Sharing policy is security-sensitive

           Security Hotspot
        10. Delivering code in production with debug features activated is security-sensitive

           Security Hotspot
        11. Hibernate should not update database schemas

           Bug
        12. "DefaultMessageListenerContainer" instances should not drop messages during restarts

           Bug
        13. "SingleConnectionFactory" instances should be set to "reconnectOnException"

           Bug
        14. pom elements should be in the recommended order

           Code Smell
        15. Dependencies should not have "system" scope

           Bug
        16. Deprecated "${pom}" properties should not be used

           Code Smell
        17. Artifact ids should follow a naming convention

           Code Smell
        18. Group ids should follow a naming convention

           Code Smell
        19. Track uses of disallowed dependencies

           Code Smell
        20. Struts validation forms should have unique names

           Vulnerability
        21. "action" mappings should not have too many "forward" entries

           Code Smell
        22. Struts filters should not miss their corresponding filter-map

           Vulnerability
        23. Creating cookies without the "HttpOnly" flag is security-sensitive

           Security Hotspot
        24. EJB interceptor exclusions should be declared as annotations

           Code Smell
        25. Default EJB interceptors should be declared in "ejb-jar.xml"

           Vulnerability
        26. Basic authentication should not be used

           Vulnerability
        27. Newlines should follow each element

           Code Smell
        28. XML parser failure

           Code Smell
        29. Hard-coded credentials are security-sensitive

           Security Hotspot
        30. XML files containing a prolog header should start with "<?xml" characters

           Bug
        31. Track breaches of an XPath rule

           Code Smell
        32. Sections of code should not be commented out

           Code Smell
        33. Track uses of "TODO" tags

           Code Smell
        34. Track uses of "FIXME" tags

           Code Smell
        35. Source code should be indented consistently

           Code Smell
        36. Tabulation characters should not be used

           Code Smell
        37. Lines should not be too long

           Code Smell

        Components should be explicitly exported

        responsibility - trustworthy
        security
        Vulnerability
        • cwe
        • android

        The android:exported attribute in Android Manifest files controls whether a component, for example an activity or service, can be started by other applications. When android:exported is not explicitly set, Android versions prior to API level 31 implicitly treat the component as if android:exported="true" were declared. This implicit export behavior could potentially lead to unintended access to the component and any data it manages.

        Why is this an issue?

        How can I fix it?

        More Info

        The core issue lies in the potential for unintended exposure. Developers may design components with the expectation that they are only accessible within their application. However, due to the implicit export behavior in older Android versions when android:exported is not set, these components become publicly accessible without the developer’s explicit configuration. This discrepancy between intended design and actual behavior can create security vulnerabilities, as components designed for internal use may not have the necessary security measures to handle external, potentially malicious, interactions.

        What is the potential impact?

        When an Android component is unintentionally exported, it can expose the application to several potential security and functional risks. Essentially, components designed for internal application use become accessible to external applications, potentially leading to unintended consequences.

        Data exposure and leakage

        One significant potential impact is the unintended exposure of sensitive data. If the implicitly exported component handles or processes user data, personal information, API keys, or other confidential information, a malicious application could potentially interact with this component to extract or intercept such data. This could lead to privacy violations, identity theft, or other forms of data breaches, depending on the nature and sensitivity of the exposed information.

        Unauthorized execution of functionality

        Beyond data exposure, an implicitly exported component can also enable unauthorized execution of application functionalities. Malicious applications might be able to leverage the exported component to trigger actions or workflows within your application that were intended for internal use only. This could result in unintended modifications to application state, bypassing of intended security controls, or even the exploitation of vulnerabilities within the component’s exposed functionality, leading to unpredictable or harmful behavior of the application.

          Available In:
        • SonarQube IdeCatch issues on the fly,
          in your IDE
        • SonarQube CloudDetect issues in your GitHub, Azure DevOps Services, Bitbucket Cloud, GitLab repositories
        • SonarQube ServerAnalyze code in your
          on-premise CI

        © 2008-2025 SonarSource SA. All rights reserved.

        Privacy Policy | Cookie Policy | Terms of Use