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
Dart

Dart static code analysis

Unique rules to find Bugs, Vulnerabilities, Security Hotspots, and Code Smells in your DART code

  • All rules 126
  • Vulnerability4
  • Bug15
  • Security Hotspot8
  • Code Smell99
Filtered: 17 rules found
cwe
    Impact
      Clean code attribute
        1. Exposing native code through JavaScript interfaces is security-sensitive

           Security Hotspot
        2. Pubspec urls should be secure

           Vulnerability
        3. Enabling JavaScript support for WebViews is security-sensitive

           Security Hotspot
        4. Cipher algorithms should be robust

           Vulnerability
        5. Encryption algorithms should be used with secure mode and padding scheme

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

           Security Hotspot
        7. Accessing Android external storage is security-sensitive

           Security Hotspot
        8. Server certificates should be verified during SSL/TLS connections

           Vulnerability
        9. Using weak hashing algorithms is security-sensitive

           Security Hotspot
        10. Exceptions should not be ignored

           Code Smell
        11. Using pseudorandom number generators (PRNGs) is security-sensitive

           Security Hotspot
        12. Code annotated as deprecated should not be used

           Code Smell
        13. Unused assignments should be removed

           Code Smell
        14. "==" operator and "hashCode()" should be overridden in pairs

           Bug
        15. Jump statements should not occur in "finally" blocks

           Bug
        16. Track uses of "TODO" tags

           Code Smell
        17. Track uses of "FIXME" tags

           Code Smell

        Using pseudorandom number generators (PRNGs) is security-sensitive

        responsibility - trustworthy
        security
        Security Hotspot
        • cwe

        PRNGs are algorithms that produce sequences of numbers that only approximate true randomness. While they are suitable for applications like simulations or modeling, they are not appropriate for security-sensitive contexts because their outputs can be predictable if the internal state is known.

        In contrast, cryptographically secure pseudorandom number generators (CSPRNGs) are designed to be secure against prediction attacks. CSPRNGs use cryptographic algorithms to ensure that the generated sequences are not only random but also unpredictable, even if part of the sequence or the internal state becomes known. This unpredictability is crucial for security-related tasks such as generating encryption keys, tokens, or any other values that must remain confidential and resistant to guessing attacks.

        For example, the use of non-cryptographic PRNGs has led to vulnerabilities such as:

        • CVE-2013-6386
        • CVE-2006-3419
        • CVE-2008-4102

        When software generates predictable values in a context requiring unpredictability, it may be possible for an attacker to guess the next value that will be generated, and use this guess to impersonate another user or access sensitive information. Therefore, it is critical to use CSPRNGs in any security-sensitive application to ensure the robustness and security of the system.

        Ask Yourself Whether

        • the code using the generated value requires it to be unpredictable. It is the case for all encryption mechanisms or when a secret value, such as a password, is hashed.
        • the function you use is a non-cryptographic PRNG.
        • the generated value is used multiple times.
        • an attacker can access the generated value.

        There is a risk if you answered yes to any of those questions.

        Recommended Secure Coding Practices

        • Only use random number generators which are recommended by OWASP or any other trusted organization.
        • Use the generated random values only once.
        • You should not expose the generated random value. If you have to store it, make sure that the database or file is secure.

        Sensitive Code Example

        import 'dart:math';
        
        final random = Random(); // Sensitive - Random() is not a secure random number generator
        final randomByte = random.nextInt(256);
        

        Compliant Solution

        import 'dart:math';
        
        final random = Random.secure();
        final randomByte = random.nextInt(256);
        

        See

        • OWASP - Secure Random Number Generation Cheat Sheet
        • OWASP - Top 10 2021 Category A2 - Cryptographic Failures
        • OWASP - Top 10 2017 Category A3 - Sensitive Data Exposure
        • CWE - CWE-338 - Use of Cryptographically Weak Pseudo-Random Number Generator (PRNG)
        • CWE - CWE-330 - Use of Insufficiently Random Values
        • CWE - CWE-326 - Inadequate Encryption Strength
        • CWE - CWE-1241 - Use of Predictable Algorithm in Random Number Generator
        • OWASP - Mobile AppSec Verification Standard - Cryptography Requirements
        • OWASP - Mobile Top 10 2016 Category M5 - Insufficient Cryptography
        • OWASP - Mobile Top 10 2024 Category M10 - Insufficient Cryptography
          Available In:
        • 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