Security detectors
Rule to detect reflected XSS.
The software does not correctly convert an object, resource, or structure from one type to a different type.
Missing authentication checks can lead to unauthorized access to a resource or performance of an action.
Unspecified defaults can cause your application to crash.
Do not use API that requests system permission directly. Please onboard mShop Permission Service first.
EagleHandler must appear after AuthNHandler to make sure that all authenticated calls are correctly logged.
Deserialization of untrusted objects can lead to security vulnerabilities such as, inadvertently running remote code.
Missing check on the value returned by moveToFirst API can cause your application to crash.
Deserializing objects from relational databases should allocate a 64-bit, not 32-bit, type for the auto-incremented identifier.
Connections that use insecure protocols transmit data in cleartext, which can leak sensitive information.
Passing StringByteConverter to Cache could cause buffer access length errors.
Insecure Cryptographic Cipher
Manually creating text-based IAM policies is error-prone.
Use of unsanitized user input to build connection strings can allow attackers to bypass security checks and access restricted resources.
Calls to mutually exclusive methods were found in the code.
Reuse AWS clients in Lambda.
Missing check on the result of createNewFile might cause data loss.
Encryption that is dependent on conditional logic, such as an if...then clause, might cause unencrypted sensitive data to be stored.
Application logging of sensitive object data
Set the AWS_SECURITY_TOKEN attribute for IAM with temporary credentials.
The code failed to initialize or incorrectly initialized internal data, leading to undefined behavior.
Synchronized objects should not be re-assigned in the same synchronized block because the references to the synchronized object would be lost.
Potentially unsanitized user input in XPath queries can allow an attacker to control the query in unwanted or insecure ways.
Rule for detecting lack of transitive auth.
Recreating AWS clients in each Lambda function invocation is expensive.
A denial of service (DOS) attack can make a critical resource unavailable for legitimate users.
Insecure ways of creating temporary files and directories can lead to race conditions, privilege escalation, and other security vulnerabilities.
Use of low level functionality in application development which is prohibited by the framework or specification under which the application is supposed to operate.
Passing data from an untrusted source into a cookie or web response might expose the user to HTTP response splitting attacks.
If a method that uses an input parameter to update an output value throws an exception, then the output value is not updated.
Insufficient sanitization of potentially untrusted URLs on the server side can allow server requests to unwanted destinations.
Rule to detect lack of authorization check when using address ID.
Improper use of locks in a multi-threaded program can lead to deadlock and cause the program to be unresponsive.
Rule to detect any Handler class with a mutable property that can be accessed via the Job object passed to the before/after method.
Creating file paths from untrusted input might give a malicious actor access to sensitive files.
Overriding environment variables that are reserved by AWS Lambda might lead to unexpected behavior.
Insecure Trust Manager can allow connection to a host that is not signed by a trusted authority.
APIs that are not recommended were found.
Hardcoded credentials can be intercepted by malicious actors.
Using a static or predictable initialization vector (IV) for a cryptographic cipher is security sensitive.
JWTs should not be parsed using the parse method.
Always call super.finalize explicitly.
Failure to specify a content length causes the contents of the input stream to buffer locally in memory in order to calculate its length. This can result in performance problems.
Checks whether System.loadLibrary is used.
Security decisions should not depend on branching that can be influenced by untrusted or client-provided data.
Rule to enable detection for potential CORS vulnerabilities in services using the Coral or Spring frameworks.
Insecure cookies can lead to unencrypted transmission of sensitive data.
Allocated resources are not released properly.
Objects that parse or handle XML can lead to XML External Entity (XXE) attacks when misconfigured.
Pass Credentials provider instead of credential to account for automatic credential rotation.
Allow-listing pre-production service principals to production
An outdated or bad parameters were detected in calls to some AWS API methods.
LDAP queries that rely on potentially untrusted inputs can allow attackers to read or modify sensitive data, run code, and perform other unwanted actions.
Uploading objects to Amazon S3 by using streams (either through an AmazonS3 client or TransferManager) might encounter network connectivity or timeout issues.
Obsolete, broken, or weak hashing algorithms can lead to security vulnerabilities.
Not setting the S3 bucket owner condition might introduce a risk of accidentally using a wrong bucket.
Public method parameters should be validated for nullness, unexpected values, and malicious values.
Using untrusted inputs in a log statement can enable attackers to break the log's format, forge log entries, and bypass log monitors.
Sensitive information should not be exposed through log files or stack traces.
Parsing ZIP files using streaming.
Objects that parse or handle XML in XML document can lead to XML External Entity (XXE) attacks when misconfigured.
The system's authorization does not prevent a user from accessing another user's data by modifying key values.
Missing check on the value returned by ResultSet.next can cause your application to crash.
TLS versions older than TLS version 1.1 support weak, broken, or misconfigured cryptography.
Scripts generated from unsanitized inputs can lead to malicious behavior and inadvertently running code remotely.
The logging of sensitive information can expose the information to potential attackers.
Improper Neutralization of Input Used in a Command (Command Injection)
Improper filtering of Amazon Machine Images (AMIs) can result in loading an untrusted image, a potential security vulnerability.
Comment parsing for OpenSAML2 might enable an attacker to bypass authentication.
Insecure configuration can lead to a cross-site request forgery (CSRF) vulnerability.
User metadata keys are case insensitive and are returned as lowercase strings, even if they were originally specified with uppercase strings.
The application does not verify server certification for TLS connection.
When re-throwing an exception, make sure to include the stack trace.
A thread safety violation might indicate a data race which can put the system into an inconsistent state.
Using less than 1,000 PBEKeySpec iterations is insecure.
User-controlled input that specifies a link to an external site could lead to phishing attacks and allow user credentials to be stolen.
Use of unsanitized external input in reflection can allow attackers to bypass security checks and run malicious code.
Sensitive data is potentially persisted into storage or passed to another service without always being encrypted.
Check if errors are returned by DynamoDBMapper's BatchWrite operations.
Dereferencing a null pointer can lead to unexpected null pointer exceptions.
Relying on potentially untrusted user inputs when constructing web application outputs can lead to cross-site scripting vulnerabilities.
Unauthenticated LDAP requests can allow untrusted access to LDAP servers.
Atomicity violations caused by improper usage of ConcurrentHashMap or ConcurrentLinkedQueue can result in crashses or incorrect program results.
Catching generic exceptions might hide issues when specific exceptions are thrown.
Weak obfuscation while configuring a web request
Credentials that are stored in clear text can be intercepted by a malicious actor.
JsonHttpBindingHandler should occur in your code before the HttpRpcHandler.
Session fixation might allow an attacker to steal authenticated session IDs.
Using println() rather than a dedicated logging facility makes it difficult to monitor the program behavior.
It's not good practice to catch an exception and then re-throw or log it.
Your application can crash if the check for an application that can receive the implicit intent is missing from code.
Improperly set permissions can lead to excessive access or restricted functionality, posing security risks.
Use numeric types that are large enough to hold the result of arithmetic operations.
Weak file permissions can lead to privilege escalation.
Constructing operating system or shell commands with unsanitized user input can lead to inadvertently running malicious code.
Use of untrusted inputs in SQL database query can enable attackers to read, modify, or delete sensitive data in the database
Additional results are not checked for a paginated API call. This might produce inaccurate results.
Checks if data from request object is passed to new server-side requests without validation in a Coral service.
User input in setAttribute could lead to trust boundary violation.
Call ShutdownNow when you use TransferManager to manage transfers to Amazon S3.
Weak, broken, or misconfigured cryptography can lead to security vulnerabilities.
Using a SimpleDateFormat object without setting its timezone can result in unexpected date and time.
Hardcoded Active JDBC Credentials in Java
Resources requiring explicit closure must be properly released to prevent leaks
Missing authorization checks can lead to unauthorized access to a resource or performance of an action.
Application logging of sensitive data
Deserialization of untrusted data without sufficiently verifying that the resulting data will be valid.
Insufficiently random generators (or hardcoded seeds) can make pseudorandom sequences predictable.
Cross-Origin Resource Sharing policies that are too permissive may lead to security vulnerabilities.
Unhandled failures of deleting files can exhaust file handles.
Client-side decryption followed by reencryption is inefficient and can lead to sensitive data leaks.
When logging an exception, make sure to include the stack trace.