Scan report
drupal / drupal
Could an attacker exploit mistakes in this code?
Serious issues. Review the high-severity findings before using it.
- High
- 3
- Medium
- 79
- Low
- 1
Sources: Bandit, Semgrep, pip-audit
Does this code look like it is trying to cause harm?
Minor issues. Worth a glance, unlikely to be urgent.
- High
- 8
- Medium
- 1
- Low
- 2
Sources: YARA, ClamAV, GuardDog, dependency checker
- Likely real
- 28
- Uncertain
- 50
- Likely noise
- 16
The risk classifier rates every finding for how likely it is to be a real issue. Likely noise still counts, just much less.
What we found, in plain English
28 findings likely need attention, 16 look like noise. Most notable: The 'phpinfo' function may reveal sensitive information about your environment. in /core/modules/system/src/Controller/SystemInfoController.php (50% confidence).
Detections by engine
Score over time
Overall score each time this repository was scanned.
Findings
Highest severity first. Select a finding to see the code and what it means.
-
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/modules/system/src/Controller/SystemInfoController.php line 83
- Likely real
- Yes, 50% confidence
The 'phpinfo' function may reveal sensitive information about your environment.
phpinfo($phpinfo_flags); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /composer/Composer.php line 86
- Likely real
- Uncertain, 43% confidence
Executing non-constant commands. This can lead to command injection.
exec("composer --working-dir=$dir config minimum-stability $stability", $output, $status); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/lib/Drupal/Core/Command/ServerCommand.php line 237
- Likely real
- Uncertain, 43% confidence
Executing non-constant commands. This can lead to command injection.
$server = proc_open($process->getCommandLine(), $descriptors, $pipes, $kernel->getAppRoot()); -
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /core/assets/vendor/ckeditor5/ckeditor5.umd.js
- Likely real
- Probably noise, 3% confidence
YARA rule matched: detect_base64_exec — Encoded payload decoded and then executed
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /core/assets/vendor/ckeditor5/ckeditor5.umd.js.map
- Likely real
- Probably noise, 3% confidence
YARA rule matched: detect_base64_exec — Encoded payload decoded and then executed
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /core/assets/vendor/ckeditor5/ckeditor5.umd.js.map
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_obfuscated_string_execution — Reconstructs a string character-by-character or from hex escapes, then immediately executes it - fromCharCode/chr() alone are common in ordinary text-processing code, so this requires both the reconstruction and an execution call together
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /core/assets/vendor/jquery/jquery.min.js
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_obfuscated_string_execution — Reconstructs a string character-by-character or from hex escapes, then immediately executes it - fromCharCode/chr() alone are common in ordinary text-processing code, so this requires both the reconstruction and an execution call together
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /core/assets/vendor/transliteration/bundle.umd.min.js.map
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_obfuscated_string_execution — Reconstructs a string character-by-character or from hex escapes, then immediately executes it - fromCharCode/chr() alone are common in ordinary text-processing code, so this requires both the reconstruction and an execution call together
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /core/assets/vendor/transliteration/bundle.umd.min.js
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_obfuscated_string_execution — Reconstructs a string character-by-character or from hex escapes, then immediately executes it - fromCharCode/chr() alone are common in ordinary text-processing code, so this requires both the reconstruction and an execution call together
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /core/assets/vendor/jquery/jquery.js
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_obfuscated_string_execution — Reconstructs a string character-by-character or from hex escapes, then immediately executes it - fromCharCode/chr() alone are common in ordinary text-processing code, so this requires both the reconstruction and an execution call together
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /core/assets/vendor/ckeditor5/ckeditor5.umd.js
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_obfuscated_string_execution — Reconstructs a string character-by-character or from hex escapes, then immediately executes it - fromCharCode/chr() alone are common in ordinary text-processing code, so this requires both the reconstruction and an execution call together
-
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/modules/ckeditor5/js/ckeditor5.js line 89
- Likely real
- Yes, 100% confidence
RegExp() called with a `config` function argument, this might allow an attacker to cause a Regular Expression Denial-of-Service (ReDoS) within your application as RegExP blocks the main thread. For this reason, it is recommended to use hardcoded regexes instead. If your regex is run on user-controlled input, consider performing input validation or use a regex checking/sanitization library such as https://www.npmjs.com/package/recheck to verify that the regex does not appear vulnerable to ReDoS.
return new RegExp(main, options); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/modules/file/js/file.js line 161
- Likely real
- Yes, 100% confidence
RegExp() called with a `event` function argument, this might allow an attacker to cause a Regular Expression Denial-of-Service (ReDoS) within your application as RegExP blocks the main thread. For this reason, it is recommended to use hardcoded regexes instead. If your regex is run on user-controlled input, consider performing input validation or use a regex checking/sanitization library such as https://www.npmjs.com/package/recheck to verify that the regex does not appear vulnerable to ReDoS.
const acceptableMatch = new RegExp(`\\.(${extensionPattern})$`, 'gi'); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/modules/views_ui/js/ajax.js line 142
- Likely real
- Yes, 100% confidence
RegExp() called with a `response` function argument, this might allow an attacker to cause a Regular Expression Denial-of-Service (ReDoS) within your application as RegExP blocks the main thread. For this reason, it is recommended to use hardcoded regexes instead. If your regex is run on user-controlled input, consider performing input validation or use a regex checking/sanitization library such as https://www.npmjs.com/package/recheck to verify that the regex does not appear vulnerable to ReDoS.
const re = new RegExp(`.+ (.) ${escapedSiteName}`); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/misc/machine-name.js line 45
- Likely real
- Yes, 100% confidence
RegExp() called with a `settings` function argument, this might allow an attacker to cause a Regular Expression Denial-of-Service (ReDoS) within your application as RegExP blocks the main thread. For this reason, it is recommended to use hardcoded regexes instead. If your regex is run on user-controlled input, consider performing input validation or use a regex checking/sanitization library such as https://www.npmjs.com/package/recheck to verify that the regex does not appear vulnerable to ReDoS.
const rx = new RegExp(settings.replace_pattern, 'g'); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/lib/Drupal/Core/Language/LanguageManager.php line 276
- Likely real
- Yes, 100% confidence
This code contains bidirectional (bidi) characters. While this is useful for support of right-to-left languages such as Arabic or Hebrew, it can also be used to trick language parsers into executing code in a manner that is different from how it is displayed in code editing and review tools. If this is not what you were expecting, please review this code in an editor that can reveal hidden Unicode characters.
'he' => ['Hebrew', /* Left-to-right marker "" */ 'עברית', LanguageInterface::DIRECTION_RTL], -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/lib/Drupal/Core/Language/LanguageManager.php line 314
- Likely real
- Yes, 100% confidence
This code contains bidirectional (bidi) characters. While this is useful for support of right-to-left languages such as Arabic or Hebrew, it can also be used to trick language parsers into executing code in a manner that is different from how it is displayed in code editing and review tools. If this is not what you were expecting, please review this code in an editor that can reveal hidden Unicode characters.
'prs' => ['Persian, Afghanistan', /* Left-to-right marker "" */ 'دری', LanguageInterface::DIRECTION_RTL], -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/lib/Drupal/Core/Language/LanguageManager.php line 315
- Likely real
- Yes, 100% confidence
This code contains bidirectional (bidi) characters. While this is useful for support of right-to-left languages such as Arabic or Hebrew, it can also be used to trick language parsers into executing code in a manner that is different from how it is displayed in code editing and review tools. If this is not what you were expecting, please review this code in an editor that can reveal hidden Unicode characters.
'ps' => ['Pashto', /* Left-to-right marker "" */ 'پښتو', LanguageInterface::DIRECTION_RTL], -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/lib/Drupal/Core/Language/LanguageManager.php line 339
- Likely real
- Yes, 100% confidence
This code contains bidirectional (bidi) characters. While this is useful for support of right-to-left languages such as Arabic or Hebrew, it can also be used to trick language parsers into executing code in a manner that is different from how it is displayed in code editing and review tools. If this is not what you were expecting, please review this code in an editor that can reveal hidden Unicode characters.
'ug' => ['Uyghur', /* Left-to-right marker "" */ 'ئۇيغۇرچە', LanguageInterface::DIRECTION_RTL], -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/lib/Drupal/Core/Language/LanguageManager.php line 341
- Likely real
- Yes, 100% confidence
This code contains bidirectional (bidi) characters. While this is useful for support of right-to-left languages such as Arabic or Hebrew, it can also be used to trick language parsers into executing code in a manner that is different from how it is displayed in code editing and review tools. If this is not what you were expecting, please review this code in an editor that can reveal hidden Unicode characters.
'ur' => ['Urdu', /* Left-to-right marker "" */ 'اردو', LanguageInterface::DIRECTION_RTL], -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/lib/Drupal/Core/Language/LanguageManager.php line 363
- Likely real
- Yes, 100% confidence
This code contains bidirectional (bidi) characters. While this is useful for support of right-to-left languages such as Arabic or Hebrew, it can also be used to trick language parsers into executing code in a manner that is different from how it is displayed in code editing and review tools. If this is not what you were expecting, please review this code in an editor that can reveal hidden Unicode characters.
'ar' => ['Arabic', /* Left-to-right marker "" */ 'العربية', LanguageInterface::DIRECTION_RTL], -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/lib/Drupal/Core/Language/LanguageManager.php line 264
- Likely real
- Yes, 100% confidence
This code contains bidirectional (bidi) characters. While this is useful for support of right-to-left languages such as Arabic or Hebrew, it can also be used to trick language parsers into executing code in a manner that is different from how it is displayed in code editing and review tools. If this is not what you were expecting, please review this code in an editor that can reveal hidden Unicode characters.
'fa' => ['Persian, Farsi', /* Left-to-right marker "" */ 'فارسی', LanguageInterface::DIRECTION_RTL], -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/lib/Drupal/Core/Language/LanguageManager.php line 241
- Likely real
- Yes, 100% confidence
This code contains bidirectional (bidi) characters. While this is useful for support of right-to-left languages such as Arabic or Hebrew, it can also be used to trick language parsers into executing code in a manner that is different from how it is displayed in code editing and review tools. If this is not what you were expecting, please review this code in an editor that can reveal hidden Unicode characters.
'ar' => ['Arabic', /* Left-to-right marker "" */ 'العربية', LanguageInterface::DIRECTION_RTL], -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/lib/Drupal/Core/Password/PhpassHashedPasswordBase.php line 224
- Likely real
- Yes, 99% confidence
It looks like MD5 is used as a password hash. MD5 is not considered a secure password hash because it can be cracked by an attacker in a short amount of time. Use a suitable password hashing function such as bcrypt. You can use `password_hash($PASSWORD, PASSWORD_BCRYPT, $OPTIONS);`.
return $this->corePassword->check($password, $stored_hash); -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /core/assets/vendor/ckeditor5/translations/bg.umd.js line 7
- Likely real
- Yes, 98% confidence
Detects unicode homoglyphs and uncommon characters used for obfuscation [threat-runtime-obfuscation-unicode]
... с точка отгоре","Latin capital letter c with caron":"Главна латинска буква „c“ с карон","Latin small letter c with caron":"Mалка латинска буква „c“ с карон","Latin capital letter d with caron":"Главна латинска буква d с карон","Latin small letter d ... -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/.yarnrc.yml line 8
- Likely real
- Yes, 96% confidence
This .yarnrc.yml does not set a minimal age gate or sets it too low. Newly published packages can be malicious or unstable. Add `npmMinimalAgeGate: "7d"` to wait 7 days before resolving newly published package versions. Added in: 4.10 Reference: https://yarnpkg.com/configuration/yarnrc#npmMinimalAgeGate
npmMinimalAgeGate: 0 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.gitlab-ci/scripts/component-coverage-metrics.php line 45
- Likely real
- Yes, 55% confidence
File name based on user input risks server-side request forgery.
file_put_contents($metricsFilePath, "component.coverage.{$metric} {$metricValue}\n", \FILE_APPEND); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.gitlab-ci/scripts/phpstan-baseline-statistics.php line 43
- Likely real
- Yes, 55% confidence
File name based on user input risks server-side request forgery.
$outputFilePath, -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.gitlab-ci/scripts/phpstan-baseline-statistics.php line 54
- Likely real
- Yes, 55% confidence
File name based on user input risks server-side request forgery.
$outputFilePath, -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/assets/scaffold/files/ht.router.php line 34
- Likely real
- Yes, 55% confidence
File name based on user input risks server-side request forgery.
if (file_exists(__DIR__ . $url['path'])) { -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.gitlab-ci/scripts/component-coverage-metrics.php line 27
- Likely real
- Yes, 55% confidence
File name based on user input risks server-side request forgery.
$report = @file_get_contents($reportFilePath); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.gitlab-ci/scripts/component-coverage-metrics.php line 37
- Likely real
- Yes, 55% confidence
File name based on user input risks server-side request forgery.
file_put_contents($reportFilePath, $output); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.ht.router.php line 34
- Likely real
- Yes, 55% confidence
File name based on user input risks server-side request forgery.
if (file_exists(__DIR__ . $url['path'])) { -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.ht.router.php line 47
- Likely real
- Yes, 55% confidence
File name based on user input risks server-side request forgery.
if (str_ends_with($path, '.php') && is_file(__DIR__ . $path)) { -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/assets/scaffold/files/ht.router.php line 47
- Likely real
- Yes, 55% confidence
File name based on user input risks server-side request forgery.
if (str_ends_with($path, '.php') && is_file(__DIR__ . $path)) { -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/lib/Drupal/Component/Transliteration/PhpTransliteration.php line 158
- Likely real
- Yes, 54% confidence
Make sure comparisons involving md5 values are strict (use `===` not `==`) to avoid type juggling issues
if ($code == -1) { -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/modules/user/src/Controller/UserController.php line 485
- Likely real
- Uncertain, 49% confidence
The `redirect()` method does not check its destination in any way. If you redirect to a URL provided by end-users, your application may be open to the unvalidated redirects security vulnerability. Consider using literal values or an allowlist to validate URLs.
return $this->redirect('entity.user.cancel_form', ['user' => $user->id()], ['absolute' => TRUE]); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/modules/user/src/Controller/UserController.php line 400
- Likely real
- Uncertain, 49% confidence
The `redirect()` method does not check its destination in any way. If you redirect to a URL provided by end-users, your application may be open to the unvalidated redirects security vulnerability. Consider using literal values or an allowlist to validate URLs.
return $this->redirect('entity.user.edit_form', ['user' => $this->currentUser()->id()], [], 302); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/modules/user/src/Controller/UserController.php line 375
- Likely real
- Uncertain, 49% confidence
The `redirect()` method does not check its destination in any way. If you redirect to a URL provided by end-users, your application may be open to the unvalidated redirects security vulnerability. Consider using literal values or an allowlist to validate URLs.
return $this->redirect('entity.user.canonical', ['user' => $this->currentUser()->id()]); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/modules/user/src/Controller/UserController.php line 301
- Likely real
- Uncertain, 49% confidence
The `redirect()` method does not check its destination in any way. If you redirect to a URL provided by end-users, your application may be open to the unvalidated redirects security vulnerability. Consider using literal values or an allowlist to validate URLs.
return $this->redirect( 'entity.user.edit_form', ['user' => $user->id()], [ 'query' => ['pass-reset-token' => $token], 'absolute' => TRUE, ] ); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/modules/user/src/Controller/UserController.php line 143
- Likely real
- Uncertain, 49% confidence
The `redirect()` method does not check its destination in any way. If you redirect to a URL provided by end-users, your application may be open to the unvalidated redirects security vulnerability. Consider using literal values or an allowlist to validate URLs.
return $this->redirect( 'user.reset', [ 'uid' => $uid, 'timestamp' => $timestamp, 'hash' => $hash, ] ); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/modules/comment/src/Controller/CommentController.php line 179
- Likely real
- Uncertain, 49% confidence
The `redirect()` method does not check its destination in any way. If you redirect to a URL provided by end-users, your application may be open to the unvalidated redirects security vulnerability. Consider using literal values or an allowlist to validate URLs.
return $this->redirect('comment.reply', [ 'entity_type' => 'node', 'entity' => $node->id(), 'field_name' => $field_name, ]); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/lib/Drupal/Core/Entity/Controller/EntityController.php line 149
- Likely real
- Uncertain, 49% confidence
The `redirect()` method does not check its destination in any way. If you redirect to a URL provided by end-users, your application may be open to the unvalidated redirects security vulnerability. Consider using literal values or an allowlist to validate URLs.
return $this->redirect($form_route_name, $parameters, ['query' => $query]); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/modules/node/src/Controller/NodeController.php line 96
- Likely real
- Uncertain, 49% confidence
The `redirect()` method does not check its destination in any way. If you redirect to a URL provided by end-users, your application may be open to the unvalidated redirects security vulnerability. Consider using literal values or an allowlist to validate URLs.
return $this->redirect('entity.node.add_form', ['node_type' => $type->id()]); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/modules/user/src/Controller/UserController.php line 182
- Likely real
- Uncertain, 49% confidence
The `redirect()` method does not check its destination in any way. If you redirect to a URL provided by end-users, your application may be open to the unvalidated redirects security vulnerability. Consider using literal values or an allowlist to validate URLs.
return $this->redirect( 'user.reset.form', ['uid' => $uid] ); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/modules/navigation/js/tooltip.js line 51
- Likely real
- Uncertain, 48% confidence
Detection of insertAdjacentHTML from non-constant definition. This can inadvertently expose users to cross-site scripting (XSS) attacks if this comes from user-provided input. If you have to use insertAdjacentHTML, consider using a sanitization library such as DOMPurify to sanitize your HTML.
Drupal.theme.tooltipWrapper(trigger.dataset), -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/misc/tableselect.js line 154
- Likely real
- Uncertain, 44% confidence
Possibility of prototype polluting function detected. By adding or modifying attributes of an object prototype, it is possible to create attributes that exist on every object, or replace critical attributes with malicious ones. This can be problematic if the software depends on existence or non-existence of certain attributes, or uses pre-defined attributes of object prototype (such as hasOwnProperty, toString or valueOf). Possible mitigations might be: freezing the object prototype, using an object without prototypes (via Object.create(null) ), blocking modifications of attributes that resolve to object prototype, using Map instead of object.
for (let i = from[mode]; i; i = i[mode]) { -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/modules/system/js/system.modules.js line 40
- Likely real
- Uncertain, 40% confidence
RegExp() called with a `e` function argument, this might allow an attacker to cause a Regular Expression Denial-of-Service (ReDoS) within your application as RegExP blocks the main thread. For this reason, it is recommended to use hardcoded regexes instead. If your regex is run on user-controlled input, consider performing input validation or use a regex checking/sanitization library such as https://www.npmjs.com/package/recheck to verify that the regex does not appear vulnerable to ReDoS.
const re = new RegExp(`\\b${query}`, 'i'); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/modules/user/js/user.permissions.js line 155
- Likely real
- Uncertain, 40% confidence
RegExp() called with a `e` function argument, this might allow an attacker to cause a Regular Expression Denial-of-Service (ReDoS) within your application as RegExP blocks the main thread. For this reason, it is recommended to use hardcoded regexes instead. If your regex is run on user-controlled input, consider performing input validation or use a regex checking/sanitization library such as https://www.npmjs.com/package/recheck to verify that the regex does not appear vulnerable to ReDoS.
const re = new RegExp(`\\b${query}`, 'i'); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/modules/migrate/src/Plugin/migrate/source/ConfigEntity.php line 75
- Likely real
- Uncertain, 36% confidence
Calling `unserialize()` with user input in the pattern can lead to arbitrary code execution. Consider using JSON or structured data approaches (e.g. Google Protocol Buffers).
$row->setSourceProperty('data', unserialize($row->getSourceProperty('data'), ['allowed_classes' => FALSE])); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/modules/user/src/UserData.php line 62
- Likely real
- Uncertain, 36% confidence
Calling `unserialize()` with user input in the pattern can lead to arbitrary code execution. Consider using JSON or structured data approaches (e.g. Google Protocol Buffers).
$return[$record->uid] = ($record->serialized ? unserialize($record->value) : $record->value); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/lib/Drupal/Component/Plugin/Discovery/AttributeClassDiscovery.php line 91
- Likely real
- Uncertain, 36% confidence
Calling `unserialize()` with user input in the pattern can lead to arbitrary code execution. Consider using JSON or structured data approaches (e.g. Google Protocol Buffers).
$dependencies = isset($cached['dependencies']) ? unserialize($cached['dependencies']) : []; -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/modules/migrate/migrate.api.php line 159
- Likely real
- Uncertain, 36% confidence
Calling `unserialize()` with user input in the pattern can lead to arbitrary code execution. Consider using JSON or structured data approaches (e.g. Google Protocol Buffers).
$row->setSourceProperty('settings:my_module:foo', unserialize($value, ['allowed_classes' => FALSE])); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/modules/migrate/migrate.api.php line 182
- Likely real
- Uncertain, 36% confidence
Calling `unserialize()` with user input in the pattern can lead to arbitrary code execution. Consider using JSON or structured data approaches (e.g. Google Protocol Buffers).
$row->setSourceProperty('settings:my_module:foo', unserialize($value, ['allowed_classes' => FALSE])); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/modules/migrate/src/Plugin/Discovery/AnnotatedClassDiscoveryAutomatedProviders.php line 69
- Likely real
- Uncertain, 36% confidence
Calling `unserialize()` with user input in the pattern can lead to arbitrary code execution. Consider using JSON or structured data approaches (e.g. Google Protocol Buffers).
$definitions[$cached['id']] = unserialize($cached['content'], ['allowed_classes' => FALSE]); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/modules/user/src/UserData.php line 47
- Likely real
- Uncertain, 36% confidence
Calling `unserialize()` with user input in the pattern can lead to arbitrary code execution. Consider using JSON or structured data approaches (e.g. Google Protocol Buffers).
return $result[$uid]->serialized ? unserialize($result[$uid]->value) : $result[$uid]->value; -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/modules/user/src/UserData.php line 55
- Likely real
- Uncertain, 36% confidence
Calling `unserialize()` with user input in the pattern can lead to arbitrary code execution. Consider using JSON or structured data approaches (e.g. Google Protocol Buffers).
$return[$record->name] = ($record->serialized ? unserialize($record->value) : $record->value); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/modules/user/src/UserData.php line 68
- Likely real
- Uncertain, 36% confidence
Calling `unserialize()` with user input in the pattern can lead to arbitrary code execution. Consider using JSON or structured data approaches (e.g. Google Protocol Buffers).
$return[$record->uid][$record->name] = ($record->serialized ? unserialize($record->value) : $record->value); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php line 2127
- Likely real
- Uncertain, 36% confidence
Calling `unserialize()` with user input in the pattern can lead to arbitrary code execution. Consider using JSON or structured data approaches (e.g. Google Protocol Buffers).
return unserialize($value); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/modules/views/src/Plugin/views/field/Serialized.php line 76
- Likely real
- Uncertain, 36% confidence
Calling `unserialize()` with user input in the pattern can lead to arbitrary code execution. Consider using JSON or structured data approaches (e.g. Google Protocol Buffers).
$value = (array) unserialize($value); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/modules/views/src/Plugin/views/field/Serialized.php line 73
- Likely real
- Uncertain, 36% confidence
Calling `unserialize()` with user input in the pattern can lead to arbitrary code execution. Consider using JSON or structured data approaches (e.g. Google Protocol Buffers).
return $this->sanitizeValue(print_r(unserialize($value), TRUE)); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/modules/serialization/src/Normalizer/PrimitiveDataNormalizer.php line 40
- Likely real
- Uncertain, 36% confidence
Calling `unserialize()` with user input in the pattern can lead to arbitrary code execution. Consider using JSON or structured data approaches (e.g. Google Protocol Buffers).
return unserialize($object->getValue(), ['allowed_classes' => FALSE]); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/modules/layout_builder/src/Plugin/Block/InlineBlock.php line 262
- Likely real
- Uncertain, 36% confidence
Calling `unserialize()` with user input in the pattern can lead to arbitrary code execution. Consider using JSON or structured data approaches (e.g. Google Protocol Buffers).
$block = unserialize($this->configuration['block_serialized']); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/modules/layout_builder/src/Plugin/Block/InlineBlock.php line 218
- Likely real
- Uncertain, 36% confidence
Calling `unserialize()` with user input in the pattern can lead to arbitrary code execution. Consider using JSON or structured data approaches (e.g. Google Protocol Buffers).
$this->blockContent = unserialize($this->configuration['block_serialized']); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/modules/dblog/src/Plugin/views/field/DblogMessage.php line 62
- Likely real
- Uncertain, 36% confidence
Calling `unserialize()` with user input in the pattern can lead to arbitrary code execution. Consider using JSON or structured data approaches (e.g. Google Protocol Buffers).
$variables = unserialize($this->getvalue($values, 'variables')); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/modules/dblog/src/Controller/DbLogController.php line 358
- Likely real
- Uncertain, 36% confidence
Calling `unserialize()` with user input in the pattern can lead to arbitrary code execution. Consider using JSON or structured data approaches (e.g. Google Protocol Buffers).
$variables = @unserialize($row->variables); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/lib/Drupal/Core/Validation/Plugin/Validation/Constraint/SerializedConstraintValidator.php line 33
- Likely real
- Uncertain, 36% confidence
Calling `unserialize()` with user input in the pattern can lead to arbitrary code execution. Consider using JSON or structured data approaches (e.g. Google Protocol Buffers).
$unserialized = @unserialize($value, ['allowed_classes' => FALSE]); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/lib/Drupal/Core/Routing/RouteProvider.php line 332
- Likely real
- Uncertain, 36% confidence
Calling `unserialize()` with user input in the pattern can lead to arbitrary code execution. Consider using JSON or structured data approaches (e.g. Google Protocol Buffers).
$result[$name] = unserialize($route); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/lib/Drupal/Core/Queue/DatabaseQueue.php line 150
- Likely real
- Uncertain, 36% confidence
Calling `unserialize()` with user input in the pattern can lead to arbitrary code execution. Consider using JSON or structured data approaches (e.g. Google Protocol Buffers).
$item->data = unserialize($item->data); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/lib/Drupal/Core/Cache/MemoryBackend.php line 99
- Likely real
- Uncertain, 36% confidence
Calling `unserialize()` with user input in the pattern can lead to arbitrary code execution. Consider using JSON or structured data approaches (e.g. Google Protocol Buffers).
$prepared->data = unserialize($prepared->data); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/lib/Drupal/Core/Config/DatabaseStorage.php line 275
- Likely real
- Uncertain, 36% confidence
Calling `unserialize()` with user input in the pattern can lead to arbitrary code execution. Consider using JSON or structured data approaches (e.g. Google Protocol Buffers).
$data = @unserialize($raw, ['allowed_classes' => FALSE]); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/lib/Drupal/Core/Batch/BatchStorage.php line 67
- Likely real
- Uncertain, 36% confidence
Calling `unserialize()` with user input in the pattern can lead to arbitrary code execution. Consider using JSON or structured data approaches (e.g. Google Protocol Buffers).
return unserialize($batch); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/lib/Drupal/Component/Serialization/PhpSerialize.php line 21
- Likely real
- Uncertain, 36% confidence
Calling `unserialize()` with user input in the pattern can lead to arbitrary code execution. Consider using JSON or structured data approaches (e.g. Google Protocol Buffers).
return unserialize($raw); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/lib/Drupal/Component/Plugin/Discovery/AttributeClassDiscovery.php line 93
- Likely real
- Uncertain, 36% confidence
Calling `unserialize()` with user input in the pattern can lead to arbitrary code execution. Consider using JSON or structured data approaches (e.g. Google Protocol Buffers).
$definitions[$cached['id']] = unserialize($cached['content']); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/lib/Drupal/Component/DependencyInjection/Container.php line 166
- Likely real
- Uncertain, 36% confidence
Calling `unserialize()` with user input in the pattern can lead to arbitrary code execution. Consider using JSON or structured data approaches (e.g. Google Protocol Buffers).
$definition = unserialize($definition); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/lib/Drupal/Core/Routing/RouteProvider.php line 303
- Likely real
- Uncertain, 36% confidence
Calling `unserialize()` with user input in the pattern can lead to arbitrary code execution. Consider using JSON or structured data approaches (e.g. Google Protocol Buffers).
$collection->add($row['name'], unserialize($row['route'])); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/lib/Drupal/Component/Annotation/Plugin/Discovery/AnnotatedClassDiscovery.php line 128
- Likely real
- Uncertain, 36% confidence
Calling `unserialize()` with user input in the pattern can lead to arbitrary code execution. Consider using JSON or structured data approaches (e.g. Google Protocol Buffers).
$definitions[$cached['id']] = unserialize($cached['content']); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/lib/Drupal/Core/DefaultContent/Exporter.php line 260
- Likely real
- Uncertain, 36% confidence
Calling `unserialize()` with user input in the pattern can lead to arbitrary code execution. Consider using JSON or structured data approaches (e.g. Google Protocol Buffers).
$value = unserialize($value); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/lib/Drupal/Core/Field/Plugin/Field/FieldType/MapItem.php line 69
- Likely real
- Uncertain, 36% confidence
Calling `unserialize()` with user input in the pattern can lead to arbitrary code execution. Consider using JSON or structured data approaches (e.g. Google Protocol Buffers).
$values = unserialize($values, ['allowed_classes' => FALSE]); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/lib/Drupal/Core/Menu/MenuTreeParameters.php line 222
- Likely real
- Uncertain, 36% confidence
Calling `unserialize()` with user input in the pattern can lead to arbitrary code execution. Consider using JSON or structured data approaches (e.g. Google Protocol Buffers).
$this->__unserialize(unserialize($serialized)); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/lib/Drupal/Core/Menu/MenuTreeStorage.php line 658
- Likely real
- Uncertain, 36% confidence
Calling `unserialize()` with user input in the pattern can lead to arbitrary code execution. Consider using JSON or structured data approaches (e.g. Google Protocol Buffers).
$link[$name] = unserialize($link[$name]); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/lib/Drupal/Core/Menu/MenuTreeStorage.php line 777
- Likely real
- Uncertain, 36% confidence
Calling `unserialize()` with user input in the pattern can lead to arbitrary code execution. Consider using JSON or structured data approaches (e.g. Google Protocol Buffers).
$link[$name] = unserialize($link[$name]); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/lib/Drupal/Core/Queue/Batch.php line 31
- Likely real
- Uncertain, 36% confidence
Calling `unserialize()` with user input in the pattern can lead to arbitrary code execution. Consider using JSON or structured data approaches (e.g. Google Protocol Buffers).
$item->data = unserialize($item->data); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/lib/Drupal/Core/Queue/Batch.php line 61
- Likely real
- Uncertain, 36% confidence
Calling `unserialize()` with user input in the pattern can lead to arbitrary code execution. Consider using JSON or structured data approaches (e.g. Google Protocol Buffers).
$result[] = unserialize($item->data); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/lib/Drupal/Component/PhpStorage/MTimeProtectedFastFileStorage.php line 173
- Likely real
- Probably noise, 21% confidence
Using user input when deleting files with `unlink()` is potentially dangerous. A malicious actor could use this to modify or access files they have no right to.
@unlink($fileinfo->getPathName()); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/modules/sqlite/src/Driver/Database/sqlite/Connection.php line 182
- Likely real
- Probably noise, 21% confidence
Using user input when deleting files with `unlink()` is potentially dangerous. A malicious actor could use this to modify or access files they have no right to.
unlink($this->connectionOptions['database'] . '-' . $prefix); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/lib/Drupal/Core/File/FileSystem.php line 105
- Likely real
- Probably noise, 20% confidence
Using user input when deleting files with `unlink()` is potentially dangerous. A malicious actor could use this to modify or access files they have no right to.
return unlink($uri, $context); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/modules/package_manager/src/FailureMarker.php line 47
- Likely real
- Probably noise, 20% confidence
Using user input when deleting files with `unlink()` is potentially dangerous. A malicious actor could use this to modify or access files they have no right to.
unlink($this->getPath()); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/lib/Drupal/Core/File/FileSystem.php line 404
- Likely real
- Probably noise, 20% confidence
Using user input when deleting files with `unlink()` is potentially dangerous. A malicious actor could use this to modify or access files they have no right to.
if (!@unlink($real_source)) { -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/lib/Drupal/Core/File/FileSystem.php line 108
- Likely real
- Probably noise, 20% confidence
Using user input when deleting files with `unlink()` is potentially dangerous. A malicious actor could use this to modify or access files they have no right to.
return unlink($uri); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/lib/Drupal/Component/PhpStorage/FileStorage.php line 184
- Likely real
- Probably noise, 20% confidence
Using user input when deleting files with `unlink()` is potentially dangerous. A malicious actor could use this to modify or access files they have no right to.
return @unlink($path); -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/modules/workflows/help_topics/workflows.overview.html.twig line 10
- Likely real
- Yes, 98% confidence
Translated strings will not be escaped when rendered in a template. This leads to a vulnerability where translators could include malicious script tags in their translations. Consider using `force_escape` to explicitly escape a translated text.
<p>{% trans %}On some sites, new content and content revisions need to be <em>moderated</em>. That is, they need to pass through several <em>states</em> before becoming visible to site visitors. The collection of states and the definition of the transitions between states is known as a <em>workflow</em>. For example, new content might start out in a <em>Draft</em> state, and then might need to pass through several <em>Review</em> states before it becomes <em>Published</em> on the live site.{% endtrans %}</p> <p>{% trans %}The core software allows you to configure workflows in which each transition has an associated permission that can be granted to a particular role. See {{ configuring_workflows_topic }} for more information.{% endtrans %}</p> <p>{% trans %}Users with sufficient permissions can change the workflow state of a particular entity. See {{ changing_states_topic }} for more information.{% endtrans %}</p> -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /core/assets/vendor/transliteration/bundle.umd.min.js line 1
- Likely real
- Yes, 95% confidence
Detects heavy obfuscation techniques commonly used by malware [threat-runtime-obfuscation]
...s!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u09... -
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /core/INSTALL.txt
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
No findings match these filters.