mailcow: dockerized - 🐮 + 🐋 = 💕
This report summarizes scanner evidence for mailcow/mailcow-dockerized, a JavaScript project with 13,723 GitHub stars. SynthScan examined 114,083 lines of code across 340 source files, recording 181 pattern matches distributed across 14 syntactic categories. The legacy adjusted pattern signal is 2.2 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 97 finding(s).
Are imports declared and package/API names verified? 42 finding(s).
Are wrappers, guards, and repeated structures necessary? 76 finding(s).
Which changes need focused human review? 181 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 181 distinct pattern matches across 14 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | generate_config.sh | 182 | # ------------------------------ | COMMENT |
| MEDIUM⚡ | generate_config.sh | 184 | # ------------------------------ | COMMENT |
| MEDIUM⚡ | generate_config.sh | 192 | # ------------------------------ | COMMENT |
| MEDIUM⚡ | generate_config.sh | 194 | # ------------------------------ | COMMENT |
| MEDIUM⚡ | generate_config.sh | 197 | # ------------------------------ | COMMENT |
| MEDIUM⚡ | generate_config.sh | 199 | # ------------------------------ | COMMENT |
| MEDIUM | generate_config.sh | 169 | # ------------------------------ | COMMENT |
| MEDIUM | generate_config.sh | 171 | # ------------------------------ | COMMENT |
| MEDIUM | generate_config.sh | 218 | # ------------------------------ | COMMENT |
| MEDIUM | generate_config.sh | 220 | # ------------------------------ | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | data/web/inc/lib/sieve/SieveParser.php | 59 | public function passthroughWhitespaceComment($token) | CODE |
| LOW | data/web/js/site/admin.js | 849 | function deleteAttributeMappingRow(elem, e) { | CODE |
| LOW | data/web/js/site/dashboard.js | 1263 | function hideTableExpandCollapseBtn(tab, table){ | CODE |
| LOW | data/web/js/site/dashboard.js | 1761 | function convertTimestampToLocalFormat(timestamp) { | CODE |
| LOW | data/web/js/site/quarantine.js | 295 | function hideTableExpandCollapseBtn(table){ | CODE |
| LOW | data/web/js/site/mailbox.js | 2420 | function hideTableExpandCollapseBtn(tab, table){ | CODE |
| LOW | data/Dockerfiles/netfilter/modules/NFTables.py | 199 | def get_mailcow_jump_rule_dict(self, _family: str, _chain: str): | CODE |
| LOW | data/Dockerfiles/netfilter/modules/NFTables.py | 512 | def create_mailcow_isolation_rule(self, _interface:str, _dports:list, _allow:str = ""): | CODE |
| LOW | data/Dockerfiles/netfilter/modules/IPTables.py | 216 | def create_mailcow_isolation_rule(self, _interface:str, _dports:list, _allow:str = ""): | CODE |
| LOW | data/Dockerfiles/dockerapi/main.py | 179 | async def post_container_update_stats(container_id : str): | CODE |
| LOW⚡ | data/Dockerfiles/dockerapi/modules/DockerApi.py | 164 | def container_post__exec__mailq__list(self, request_json, **kwargs): | CODE |
| LOW⚡ | data/Dockerfiles/dockerapi/modules/DockerApi.py | 174 | def container_post__exec__mailq__flush(self, request_json, **kwargs): | CODE |
| LOW⚡ | data/Dockerfiles/dockerapi/modules/DockerApi.py | 184 | def container_post__exec__mailq__super_delete(self, request_json, **kwargs): | CODE |
| LOW⚡ | data/Dockerfiles/dockerapi/modules/DockerApi.py | 194 | def container_post__exec__system__fts_rescan(self, request_json, **kwargs): | CODE |
| LOW⚡ | data/Dockerfiles/dockerapi/modules/DockerApi.py | 272 | def container_post__exec__reload__dovecot(self, request_json, **kwargs): | CODE |
| LOW⚡ | data/Dockerfiles/dockerapi/modules/DockerApi.py | 282 | def container_post__exec__reload__postfix(self, request_json, **kwargs): | CODE |
| LOW⚡ | data/Dockerfiles/dockerapi/modules/DockerApi.py | 292 | def container_post__exec__reload__nginx(self, request_json, **kwargs): | CODE |
| LOW⚡ | data/Dockerfiles/dockerapi/modules/DockerApi.py | 302 | def container_post__exec__sieve__list(self, request_json, **kwargs): | CODE |
| LOW | data/Dockerfiles/dockerapi/modules/DockerApi.py | 80 | def container_post__exec__mailq__delete(self, request_json, **kwargs): | CODE |
| LOW | data/Dockerfiles/dockerapi/modules/DockerApi.py | 96 | def container_post__exec__mailq__hold(self, request_json, **kwargs): | CODE |
| LOW | data/Dockerfiles/dockerapi/modules/DockerApi.py | 112 | def container_post__exec__mailq__cat(self, request_json, **kwargs): | CODE |
| LOW | data/Dockerfiles/dockerapi/modules/DockerApi.py | 130 | def container_post__exec__mailq__unhold(self, request_json, **kwargs): | CODE |
| LOW | data/Dockerfiles/dockerapi/modules/DockerApi.py | 146 | def container_post__exec__mailq__deliver(self, request_json, **kwargs): | CODE |
| LOW | data/Dockerfiles/dockerapi/modules/DockerApi.py | 219 | def container_post__exec__system__df(self, request_json, **kwargs): | CODE |
| LOW | data/Dockerfiles/dockerapi/modules/DockerApi.py | 233 | def container_post__exec__system__mysql_upgrade(self, request_json, **kwargs): | CODE |
| LOW | data/Dockerfiles/dockerapi/modules/DockerApi.py | 257 | def container_post__exec__system__mysql_tzinfo_to_sql(self, request_json, **kwargs): | CODE |
| LOW | data/Dockerfiles/dockerapi/modules/DockerApi.py | 313 | def container_post__exec__sieve__print(self, request_json, **kwargs): | CODE |
| LOW | data/Dockerfiles/dockerapi/modules/DockerApi.py | 325 | def container_post__exec__maildir__cleanup(self, request_json, **kwargs): | CODE |
| LOW | data/Dockerfiles/dockerapi/modules/DockerApi.py | 346 | def container_post__exec__maildir__move(self, request_json, **kwargs): | CODE |
| LOW | data/Dockerfiles/dockerapi/modules/DockerApi.py | 370 | def container_post__exec__rspamd__worker_password(self, request_json, **kwargs): | CODE |
| LOW | data/Dockerfiles/dockerapi/modules/DockerApi.py | 402 | def container_post__exec__sogo__rename_user(self, request_json, **kwargs): | CODE |
| LOW | data/Dockerfiles/dockerapi/modules/DockerApi.py | 416 | def container_post__exec__doveadm__get_acl(self, request_json, **kwargs): | CODE |
| LOW | data/Dockerfiles/dockerapi/modules/DockerApi.py | 467 | def container_post__exec__doveadm__delete_acl(self, request_json, **kwargs): | CODE |
| LOW | data/Dockerfiles/dockerapi/modules/DockerApi.py | 482 | def container_post__exec__doveadm__set_acl(self, request_json, **kwargs): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | data/Dockerfiles/dovecot/quota_notify.py | 28 | except Exception as ex: | CODE |
| LOW⚡ | data/Dockerfiles/dovecot/quota_notify.py | 38 | except Exception: | CODE |
| MEDIUM⚡ | data/Dockerfiles/dovecot/quota_notify.py | 39 | print("Error: Cannot parse quota template, falling back to default template.") | CODE |
| LOW | data/Dockerfiles/dovecot/quota_notify.py | 90 | except Exception as ex: | CODE |
| LOW | data/Dockerfiles/dovecot/quarantine_notify.py | 37 | except Exception as ex: | CODE |
| LOW | data/Dockerfiles/dovecot/quarantine_notify.py | 54 | except Exception as ex: | CODE |
| LOW | data/Dockerfiles/dovecot/quarantine_notify.py | 91 | except Exception: | CODE |
| MEDIUM | data/Dockerfiles/dovecot/quarantine_notify.py | 92 | print("Error: Cannot parse quarantine template, falling back to default template.") | CODE |
| LOW | data/Dockerfiles/dovecot/quarantine_notify.py | 139 | except Exception as ex: | CODE |
| LOW | data/Dockerfiles/dovecot/quarantine_notify.py | 159 | except Exception as ex: | CODE |
| LOW | data/Dockerfiles/netfilter/main.py | 249 | except Exception as ex: | CODE |
| LOW | data/Dockerfiles/netfilter/main.py | 277 | except Exception as ex: | CODE |
| LOW | data/Dockerfiles/netfilter/main.py | 323 | except Exception: | CODE |
| LOW | data/Dockerfiles/netfilter/main.py | 485 | except Exception as ex: | CODE |
| LOW | data/Dockerfiles/netfilter/modules/Logger.py | 32 | except Exception as ex: | CODE |
| LOW | data/Dockerfiles/netfilter/modules/IPTables.py | 250 | except Exception as e: | CODE |
| MEDIUM | data/Dockerfiles/netfilter/modules/IPTables.py | 137 | def snat4(self, snat_target, source): | CODE |
| LOW | data/Dockerfiles/dockerapi/main.py | 99 | except Exception as e: | CODE |
| LOW | data/Dockerfiles/dockerapi/main.py | 122 | except Exception as e: | CODE |
| LOW | data/Dockerfiles/dockerapi/main.py | 135 | except Exception as err: | CODE |
| LOW | data/Dockerfiles/dockerapi/main.py | 163 | except Exception as e: | CODE |
| LOW | data/Dockerfiles/dockerapi/main.py | 239 | except Exception as e: | CODE |
| MEDIUM | data/Dockerfiles/dockerapi/modules/DockerApi.py | 518 | def get_host_stats(self, wait=5): | CODE |
| LOW | data/Dockerfiles/dockerapi/modules/DockerApi.py | 537 | except Exception as e: | CODE |
| LOW | data/Dockerfiles/dockerapi/modules/DockerApi.py | 561 | except Exception as e: | CODE |
| LOW | data/Dockerfiles/dockerapi/modules/DockerApi.py | 613 | except Exception as e: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | helper-scripts/generate_caa_record.py | 41 | except ValueError: | CODE |
| HIGH | data/Dockerfiles/dovecot/quota_notify.py | 96 | except: | CODE |
| HIGH | data/Dockerfiles/dovecot/quota_notify.py | 101 | except: | CODE |
| HIGH | data/Dockerfiles/olefy/olefy.py | 220 | except KeyboardInterrupt: | CODE |
| HIGH | data/Dockerfiles/dockerapi/main.py | 249 | except asyncio.TimeoutError: | CODE |
| HIGH | data/Dockerfiles/dockerapi/modules/DockerApi.py | 601 | except: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | data/web/inc/ajax/transport_check.php | 16 | $mail_from = "relay@example.org"; | CODE |
| LOW | data/web/lang/lang.da-dk.json | 1053 | "tag_help_example": "Eksempel på en tagget e-mail-adresse : me<b>+Tacaly</b>@example.org", | CODE |
| LOW | data/web/lang/lang.de-de.json | 1396 | "tag_help_example": "Beispiel für eine getaggte E-Mail-Adresse: ich<b>+Facebook</b>@example.org", | CODE |
| LOW | data/web/lang/lang.fr-fr.json | 1330 | "tag_help_example": "Exemple pour une adresse de courriel étiquetée : me<b>+Facebook</b>@example.org", | CODE |
| LOW | data/web/lang/lang.cs-cz.json | 1384 | "tag_help_example": "Příklad e-mailové adresy se značkou: me<b>+Facebook</b>@example.org", | CODE |
| LOW | data/web/lang/lang.zh-tw.json | 1246 | "tag_help_example": "標籤的信箱地址範例: me<b>+Facebook</b>@example.org", | CODE |
| LOW | data/web/lang/lang.sk-sk.json | 1222 | "tag_help_example": "Príklad tagu e-mailovej adresy: me<b>+Facebook</b>@example.org", | CODE |
| LOW | data/web/lang/lang.ro-ro.json | 1170 | "tag_help_example": "Exemplu pentru o adresă de email etichetată: me<b>+Facebook</b>@example.org", | CODE |
| LOW | data/web/lang/lang.pl-pl.json | 1112 | "tag_help_example": "Przykład adresu email z etykietą: ja<b>+Facebook</b>@example.org", | CODE |
| LOW | data/web/lang/lang.uz-uz.json | 1403 | "tag_help_example": "Teglangan e-pochta manzili misoli: me<b>+Facebook</b>@example.org", | CODE |
| LOW | data/web/lang/lang.en-gb.json | 1414 | "tag_help_example": "Example for a tagged email address: me<b>+Facebook</b>@example.org", | CODE |
| LOW | data/web/lang/lang.fi-fi.json | 869 | "tag_help_example": "Esimerkki merkitylle Sähkö posti osoitteeksi: me<b>+Facebook</b>@example.org", | CODE |
| LOW | data/web/lang/lang.nl-nl.json | 1302 | "tag_help_example": "Voorbeeld van een maildres met tag: me<b>+Tesla</b>@example.org", | CODE |
| LOW | data/web/lang/lang.lv-lv.json | 664 | "tag_help_example": "Piemērs ietagotai e-pasta adresei: me<b>+Facebook</b>@example.org", | CODE |
| LOW | data/web/lang/lang.si-si.json | 1411 | "tag_help_example": "Primer označenega e-poštnega naslova: jaz<b>+Facebook</b>@example.org", | CODE |
| LOW | data/web/lang/lang.it-it.json | 1258 | "tag_help_example": "Esempio di mail con tag: ich<b>+Facebook</b>@example.org", | CODE |
| LOW | data/web/lang/lang.tr-tr.json | 1291 | "tag_help_example": "Etiketli bir e-posta adresi örneği: ben<b>+Facebook</b>@example.org", | CODE |
| LOW | data/web/lang/lang.sv-se.json | 1077 | "tag_help_example": "Exempel på en taggad e-postadress: me<b>+Facebook</b>@example.org", | CODE |
| LOW | data/web/lang/lang.ko-kr.json | 1087 | "tag_help_example": "태그가 있는 이메일 주소의 예시: me<b>+Facebook</b>@example.org", | CODE |
| LOW | data/web/lang/lang.ja-jp.json | 1303 | "tag_help_example": "タグ付きメールアドレスの例: me<b>+Facebook</b>@example.org", | CODE |
| LOW | data/web/lang/lang.bg-bg.json | 1354 | "tag_help_example": "Пример за тагован имейл адрес: me<b>+Facebook</b>@example.org", | CODE |
| LOW | data/web/lang/lang.zh-cn.json | 1369 | "tag_help_example": "带有标签的邮箱地址示例: me<b>+Facebook</b>@example.org", | CODE |
| LOW | data/web/api/swagger-ui.js | 1 | !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.am | CODE |
| LOW | data/web/api/swagger-ui.js | 1 | !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.am | CODE |
| LOW | data/web/api/swagger-ui-es-bundle-core.js | 2 | import*as e from"react-immutable-pure-component";import*as t from"remarkable/linkify";import*as a from"dompurify";import | CODE |
| LOW | data/web/api/swagger-ui-es-bundle-core.js | 2 | import*as e from"react-immutable-pure-component";import*as t from"remarkable/linkify";import*as a from"dompurify";import | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | data/Dockerfiles/dovecot/quarantine_notify.py | 80 | CODE | |
| LOW | data/Dockerfiles/netfilter/main.py | 115 | CODE | |
| LOW | data/Dockerfiles/netfilter/main.py | 208 | CODE | |
| LOW | data/Dockerfiles/netfilter/main.py | 252 | CODE | |
| LOW | data/Dockerfiles/netfilter/main.py | 404 | CODE | |
| LOW | data/Dockerfiles/netfilter/modules/NFTables.py | 222 | CODE | |
| LOW | data/Dockerfiles/netfilter/modules/NFTables.py | 282 | CODE | |
| LOW | data/Dockerfiles/netfilter/modules/NFTables.py | 397 | CODE | |
| LOW | data/Dockerfiles/netfilter/modules/IPTables.py | 46 | CODE | |
| LOW | data/Dockerfiles/netfilter/modules/IPTables.py | 137 | CODE | |
| LOW | data/Dockerfiles/netfilter/modules/IPTables.py | 175 | CODE | |
| LOW | data/Dockerfiles/olefy/olefy.py | 92 | CODE | |
| LOW | data/Dockerfiles/olefy/olefy.py | 104 | CODE | |
| LOW | data/Dockerfiles/olefy/olefy.py | 165 | CODE | |
| LOW | data/Dockerfiles/dockerapi/main.py | 84 | CODE | |
| LOW | data/Dockerfiles/dockerapi/main.py | 130 | CODE | |
| LOW | data/Dockerfiles/dockerapi/main.py | 197 | CODE | |
| LOW | data/Dockerfiles/dockerapi/modules/DockerApi.py | 146 | CODE | |
| LOW | data/Dockerfiles/dockerapi/modules/DockerApi.py | 233 | CODE | |
| LOW | data/Dockerfiles/dockerapi/modules/DockerApi.py | 370 | CODE | |
| LOW | data/Dockerfiles/dockerapi/modules/DockerApi.py | 416 | CODE | |
| LOW | data/Dockerfiles/dockerapi/modules/DockerApi.py | 546 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | update.sh | 53 | # Check if modules changed | COMMENT |
| LOW | generate_config.sh | 251 | # Set this to "allow" to enable the anyone pseudo user. Disabled by default. | COMMENT |
| LOW | _modules/scripts/new_options.sh | 142 | echo '# Set this to "allow" to enable the anyone pseudo user. Disabled by default.' >> mailcow.conf | CODE |
| LOW | helper-scripts/dev_tests/view_autodiscover.sh | 58 | # Check if xmllint is available | COMMENT |
| LOW | helper-scripts/dev_tests/view_autodiscover.sh | 107 | # Check if response is empty | COMMENT |
| LOW | data/Dockerfiles/rspamd/docker-entrypoint.sh | 169 | # Check if the sender client is listed in AuthBL (AuthBL is *not* part of ZEN) | COMMENT |
| LOW | data/Dockerfiles/acme/acme.sh | 345 | # Check if MAILCOW_HOSTNAME is covered by a wildcard in ADDITIONAL_SAN | COMMENT |
| LOW | data/Dockerfiles/acme/functions.sh | 88 | # Check if CNAME without v6 enabled target | COMMENT |
| LOW | data/Dockerfiles/acme/functions.sh | 139 | # Check if a domain is covered by a wildcard (*.example.com) in ADDITIONAL_SAN | COMMENT |
| LOW | data/Dockerfiles/acme/functions.sh | 160 | # Check if ADDITIONAL_SAN contains a wildcard for this parent domain | COMMENT |
| LOW | data/Dockerfiles/watchdog/check_mysql_slavestatus.sh | 118 | # Check if we can write to tmp | COMMENT |
| LOW | data/Dockerfiles/watchdog/check_mysql_slavestatus.sh | 186 | # Check if tmp file exists | COMMENT |
| LOW | data/Dockerfiles/watchdog/watchdog.sh | 108 | # Check if one of the notification options is enabled | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | update.sh | 561 | COMMENT | |
| LOW | generate_config.sh | 201 | # You should use HTTPS, but in case of SSL offloaded reverse proxies: | COMMENT |
| LOW | generate_config.sh | 241 | # Please use lowercase letters only | COMMENT |
| LOW | generate_config.sh | 261 | MAILDIR_GC_TIME=7200 | COMMENT |
| LOW | generate_config.sh | 281 | # in the reverse proxy. | COMMENT |
| LOW | generate_config.sh | 301 | # You will need to pass provider-specific environment variables to the acme-mailcow container. | COMMENT |
| LOW | generate_config.sh | 341 | FTS_HEAP=128 | COMMENT |
| LOW | generate_config.sh | 361 | #WATCHDOG_NOTIFY_EMAIL= | COMMENT |
| LOW | generate_config.sh | 401 | #SNAT_TO_SOURCE= | COMMENT |
| LOW | generate_config.sh | 421 | SOGO_EXPIRE_SESSION=480 | COMMENT |
| LOW | generate_config.sh | 441 | # Optional: Leave empty for none | COMMENT |
| LOW | data/web/inc/functions.oauth2.inc.php | 21 | $scope = 'profile'; | COMMENT |
| LOW | data/web/inc/lib/WebAuthn/WebAuthn.php | 381 | $authenticatorObj = new Attestation\AuthenticatorData($authenticatorData); | COMMENT |
| LOW | data/Dockerfiles/acme/expand6.sh | 1 | #!/bin/bash | COMMENT |
| LOW | data/Dockerfiles/sogo/bootstrap-sogo.sh | 121 | # Generate footer | COMMENT |
| LOW | data/Dockerfiles/olefy/olefy.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | data/Dockerfiles/watchdog/check_mysql_slavestatus.sh | 1 | #!/bin/bash | COMMENT |
| LOW | data/Dockerfiles/watchdog/check_mysql_slavestatus.sh | 21 | # 2008041702 Added usage of script with params -H -u -p # | COMMENT |
| LOW | data/Dockerfiles/watchdog/check_mysql_slavestatus.sh | 41 | # 2012080304 Added error output from mysql # | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | helper-scripts/generate_caa_record.py | 4 | CODE | |
| LOW | helper-scripts/generate_caa_record.py | 4 | CODE | |
| LOW | data/Dockerfiles/dovecot/quota_notify.py | 4 | CODE | |
| LOW | data/Dockerfiles/dovecot/quota_notify.py | 7 | CODE | |
| LOW | data/Dockerfiles/dovecot/quarantine_notify.py | 9 | CODE | |
| LOW | data/Dockerfiles/dovecot/quarantine_notify.py | 17 | CODE | |
| LOW | data/Dockerfiles/netfilter/main.py | 13 | CODE | |
| LOW | data/Dockerfiles/netfilter/modules/NFTables.py | 3 | CODE | |
| LOW | data/Dockerfiles/netfilter/modules/IPTables.py | 3 | CODE | |
| LOW | data/Dockerfiles/nginx/bootstrap.py | 2 | CODE | |
| LOW | data/Dockerfiles/dockerapi/main.py | 2 | CODE | |
| LOW | data/Dockerfiles/dockerapi/main.py | 5 | CODE | |
| LOW | data/Dockerfiles/dockerapi/main.py | 11 | CODE | |
| LOW | data/Dockerfiles/dockerapi/modules/DockerApi.py | 10 | CODE | |
| LOW | data/Dockerfiles/dockerapi/modules/DockerApi.py | 10 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | generate_config.sh | 205 | # IMPORTANT: Do not use port 8081, 9081, 9082 or 65510! | COMMENT |
| LOW | data/web/inc/init_db.inc.php | 1266 | // Step 1: Get all non-primary keys, that currently exist and those that should exist | COMMENT |
| LOW⚡ | data/web/inc/init_db.inc.php | 1286 | // Step 2: Drop all vanished indexes | COMMENT |
| LOW⚡ | data/web/inc/init_db.inc.php | 1292 | // Step 3: Drop all vanished primary keys | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | data/web/inc/init_db.inc.php | 1266 | // Step 1: Get all non-primary keys, that currently exist and those that should exist | COMMENT |
| LOW⚡ | data/web/inc/init_db.inc.php | 1286 | // Step 2: Drop all vanished indexes | COMMENT |
| LOW⚡ | data/web/inc/init_db.inc.php | 1292 | // Step 3: Drop all vanished primary keys | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | data/Dockerfiles/dockerapi/modules/DockerApi.py | 388 | cmd = '''/bin/echo 'enable_password = "%s";' > %s && cat %s''' % (rspamd_passphrase_hash, rspamd_password_fi | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | generate_config.sh | 271 | # You can also just add static names... | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | data/web/inc/lib/sieve/SieveScript.php | 5 | // TODO: implement | COMMENT |