Swift

Swift

Made by DeepSource
Audit: Use of legacy functions to generate random values can be insecure SW-A1000
Security
Critical

Legacy functions like arc4random() or arc4random_uniform() should not be used for generating random numbers. These functions are provided through imported C APIs, and depending on the platform that is executing the code, their underlying implementations can be unsafe.

Use of an insecure version of TLS protocol SW-S1002
Security
Critical

Choosing secure TLS versions in your app is important because using outdated or vulnerable TLS versions can expose your app's communication to potential attacks. Malicious actors could take advantage of known vulnerabilities in these older TLS versions to intercept sensitive information, compromise user privacy, or perform other malicious actions. TLS versions 1.0 and 1.1 have been found to have several vulnerabilities.

Use of unrestricted base URL in web view SW-S1000
Security
Critical

When a web view loads content from a source (like a web page or HTML string), it can also make additional network requests to fetch resources such as images, scripts, stylesheets, etc. If the base URL for these requests is not properly restricted, an attacker could craft URLs that point to local files or malicious websites. This can result in unintended data leakage or execution of malicious scripts.

Use of insufficient number of iterations during hash computation SW-S1001
Security
Critical

The number of iterations in the password hashing process directly impacts the computational complexity and time it takes to compute the hash. A low number of iterations can be easily computed by attackers, allowing them to use techniques like brute force or rainbow table attacks to quickly crack the hashed passwords.

Use of an insecure block cipher mode SW-S1003
Security
Critical

ECB encrypts identical plaintext blocks into identical ciphertext blocks. This means that if the same plaintext block appears multiple times in the message, it will result in the same ciphertext block. This behavior makes the encryption vulnerable to certain attacks, such as replay attacks, where an attacker can intercept and replay the encrypted blocks to recreate the original message.

Audit: Use of potentially insecure options during XML parsing SW-A1001
Security
Critical

Setting the shouldResolveExternalEntities option to true in the XMLParser instance can make your application vulnerable to XXE attacks. An XXE attack occurs when an attacker tricks an XML parser into processing external entities from a malicious XML input.

Use of an insecure cipher algorithm SW-S1004
Security
Critical

DES uses a fixed key length of 56 bits, which is considered insufficient to resist modern brute-force attacks. With the computational power available today, a brute-force attack on DES can be executed relatively quickly. Triple Data Encryption Standard (3DES), also known as TDEA or DESede, is an enhancement of the original Data Encryption Standard (DES) algorithm. It aims to improve the security of DES by applying the algorithm multiple times in succession with different keys. While 3DES is more secure than single DES. But even Triple DES was proven ineffective against brute force attacks (in addition to slowing down the process substantially).