github.com / frappe
frappe/ erpnext
Python·5908 files·commit 2f8c531·scanned 2h ago·cached ✓
?/100
INCONCLUSIVE
Scan coverage was too low to trust this verdict — treat the score as inconclusive and rescan.
score capped at 15 — 40,748+ stars — findings likely false positives
scored by engine v9: rules have changed since, rescan for the current result
verdict accurate?
Incomplete scan
40,748 stars
Partial architecture graph
threat-state: lowlive
FINDINGS ░▒▓
criticaleval() usage detectedeval() executes arbitrary code and is commonly used in malware to run obfuscated payloads fetched from remote servers.erpnext/accounts/doctype/bank_transaction_rule/test_bank_transaction_rule.py
"__import__('os')",
"eval('1+1')",
"open('/etc/passwd')",
"transaction_amount ** 2",+8criticalPython dynamic code executioneval(), exec() or compile() on untrusted input can execute arbitrary code. Common in Python malware for running obfuscated payloads.erpnext/accounts/doctype/bank_transaction_rule/test_bank_transaction_rule.py
"__import__('os')",
"eval('1+1')",
"open('/etc/passwd')",
"transaction_amount ** 2",+7criticaleval() usage detectedeval() executes arbitrary code and is commonly used in malware to run obfuscated payloads fetched from remote servers.erpnext/accounts/doctype/financial_report_template/test_financial_report_engine.py
"__import__('os').system('ls')", # Import attempts
"eval('1+1')", # Nested eval attempts
"exec('print(1)')", # Exec attempts
"open('/etc/passwd')", # File operations+8criticalPython dynamic code executioneval(), exec() or compile() on untrusted input can execute arbitrary code. Common in Python malware for running obfuscated payloads.erpnext/accounts/doctype/financial_report_template/test_financial_report_engine.py
"__import__('os').system('ls')", # Import attempts
"eval('1+1')", # Nested eval attempts
"exec('print(1)')", # Exec attempts
"open('/etc/passwd')", # File operations+7warningHigh-entropy string literalsFound 5 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.erpnext/erpnext_integrations/doctype/plaid_settings/test_plaid_settings.py+3
Scores are heuristics. A “safe” verdict means no known-malicious patterns were found — clever malware can look boring. Wrong verdict? Flag it above; confirmed false positives become regression tests.
1829 files scanned @ 2f8c531 | 10/29/2026 | heuristic scan — always review manually
risk by category
code execution25
network & exfiltration0
file system access0
obfuscation3
supply chain2
owasp / injection0
telemetry
files 1829/5908rules hit 7engine v9commit 2f8c531
github
frappe/erpnext
Free and Open Source Enterprise Resource Planning (ERP)
40748
13337
5623d
5908 files
1829 scanned(31%)
2f8c531
network indicators░▒▓
Hosts this code names or would connect to. Top 50 of 128, decoded and call-site destinations first. Informational, not scored.
- https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/….deburlnext to network call.github/helper/install.sh:275
- https://api.github.com/repos/frappe/erpnext/pulls/urlnext to network call.github/helper/documentation.py:44
- https://github.com.usernameurl.github/helper/install.sh:25
- https://github.com.helperurl.github/helper/install.sh:27
- https://github.com/$url.github/helper/install.sh:51 +2 more
- https://docs.frappe.io/erpnext/chart-of-accountsurlerpnext/accounts/doctype/account/account.json:10
- https://docs.frappe.io/erpnext/user/manual/en/accounting-dimension-filterurlerpnext/accounts/doctype/accounting_dimension_filter/accounting_dimension_filter.json:6
- https://docs.frappe.io/erpnext/user/manual/en/accounting-dimensionsurlerpnext/accounts/doctype/accounting_dimension/accounting_dimension.json:7
- https://docs.frappe.io/erpnext/user/manual/en/accounting-periodurlerpnext/accounts/doctype/accounting_period/accounting_period.json:7
- https://docs.frappe.io/erpnext/user/manual/en/accounts-settingsurlerpnext/accounts/doctype/accounts_settings/accounts_settings.json:6
- https://docs.frappe.io/erpnext/accounts-settingsurlerpnext/accounts/doctype/accounts_settings/accounts_settings.json:156 +1 more
- https://docs.frappe.io/erpnext/user/manual/en/common_party_accountingurlerpnext/accounts/doctype/accounts_settings/accounts_settings.json:322 +1 more
- https://docs.frappe.io/erpnext/loyalty-programurlerpnext/accounts/doctype/accounts_settings/accounts_settings.json:709
- https://docs.frappe.io/erpnext/user/manual/en/bank-accounturlerpnext/accounts/doctype/bank_account/bank_account.json:9 +1 more
- https://docs.frappe.io/erpnext/user/manual/en/bank-guaranteeurlerpnext/accounts/doctype/bank_guarantee/bank_guarantee.json:9
- https://docs.frappe.io/erpnext/user/manual/en/bank-transactionurlerpnext/accounts/doctype/bank_transaction/bank_transaction.json:8
- https://cdn.plaid.com/link/v2/stable/link-initialize.jsurlerpnext/accounts/doctype/bank/bank.js:47 +1 more
- https://docs.frappe.io/erpnext/user/manual/en/bankurlerpnext/accounts/doctype/bank/bank.json:10
- https://docs.frappe.io/erpnext/user/manual/en/budgetingurlerpnext/accounts/doctype/budget/budget.json:8
- https://docs.frappe.io/erpnext/user/manual/en/chart-of-accounts-importerurlerpnext/accounts/doctype/chart_of_accounts_importer/chart_of_accounts_importer.json:8
- https://docs.frappe.io/erpnext/user/manual/en/cheque-print-templateurlerpnext/accounts/doctype/cheque_print_template/cheque_print_template.json:8
- https://docs.frappe.io/erpnext/user/manual/en/cost_center_allocationurlerpnext/accounts/doctype/cost_center_allocation/cost_center_allocation.json:8
- https://docs.frappe.io/erpnext/user/manual/en/cost-centerurlerpnext/accounts/doctype/cost_center/cost_center.json:10
- https://docs.frappe.io/erpnext/user/manual/en/coupon-codeurlerpnext/accounts/doctype/coupon_code/coupon_code.json:9
- https://docs.frappe.io/erpnext/user/manual/en/currency-exchange-settingsurlerpnext/accounts/doctype/currency_exchange_settings/currency_exchange_settings.json:5
- http://jinja.pocoo.org/docs/dev/templates/urlerpnext/accounts/doctype/dunning_letter_text/dunning_letter_text.json:56 +1 more
- https://docs.frappe.io/erpnext/user/manual/en/dunningurlerpnext/accounts/doctype/dunning/dunning.json:9
- https://docs.frappe.io/erpnext/user/manual/en/exchange-rate-revaluationurlerpnext/accounts/doctype/exchange_rate_revaluation/exchange_rate_revaluation.json:8
- https://docs.frappe.io/erpnext/user/manual/en/finance-bookurlerpnext/accounts/doctype/finance_book/finance_book.json:9
- https://docs.frappe.io/erpnext/user/manual/en/financial-report-templateurlerpnext/accounts/doctype/financial_report_template/financial_report_template.json:7
- https://docs.frappe.io/erpnext/user/manual/en/fiscal-yearurlerpnext/accounts/doctype/fiscal_year/fiscal_year.json:9
- https://docs.frappe.io/erpnext/user/manual/en/invoice_discountingurlerpnext/accounts/doctype/invoice_discounting/invoice_discounting.json:9
- https://docs.frappe.io/erpnext/user/manual/en/item-tax-templateurlerpnext/accounts/doctype/item_tax_template/item_tax_template.json:9
- https://docs.frappe.io/erpnext/user/manual/en/journal-entry-templateurlerpnext/accounts/doctype/journal_entry_template/journal_entry_template.json:8
- https://docs.frappe.io/erpnext/user/manual/en/journal-entryurlerpnext/accounts/doctype/journal_entry/journal_entry.json:10 +1 more
- https://docs.frappe.io/erpnext/user/manual/en/loyalty-programurlerpnext/accounts/doctype/loyalty_program/loyalty_program.json:7
- https://docs.frappe.io/erpnext/user/manual/en/mode-of-paymenturlerpnext/accounts/doctype/mode_of_payment/mode_of_payment.json:10
- https://docs.frappe.io/erpnext/user/manual/en/opening-invoice-creation-toolurlerpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.json:7
- https://docs.frappe.io/erpnext/user/manual/en/payment-entryurlerpnext/accounts/doctype/payment_entry/payment_entry.json:9 +1 more
- https://docs.frappe.io/erpnext/user/manual/en/payment-orderurlerpnext/accounts/doctype/payment_order/payment_order.json:7
- https://docs.frappe.io/erpnext/user/manual/en/payment-reconciliationurlerpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.json:6
- https://docs.erpnext.com/docs/user/manual/en/advance-in-separate-party-accounturlerpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.json:259 +1 more
- https://docs.frappe.io/erpnext/user/manual/en/payment-requesturlerpnext/accounts/doctype/payment_request/payment_request.json:7
- https://docs.frappe.io/erpnext/user/manual/en/payment-termsurlerpnext/accounts/doctype/payment_term/payment_term.json:9
- https://docs.frappe.io/erpnext/user/manual/en/payment-terms-templateurlerpnext/accounts/doctype/payment_terms_template/payment_terms_template.json:9
- https://docs.frappe.io/erpnext/user/manual/en/period-closing-voucherurlerpnext/accounts/doctype/period_closing_voucher/period_closing_voucher.json:7
- https://docs.frappe.io/erpnext/user/manual/en/pos-profileurlerpnext/accounts/doctype/pos_profile/pos_profile.json:8
- https://docs.frappe.io/erpnext/user/manual/en/pricing-ruleurlerpnext/accounts/doctype/pricing_rule/pricing_rule.json:9
- https://docs.frappe.io/erpnext/user/manual/en/process-deferred-accountingurlerpnext/accounts/doctype/process_deferred_accounting/process_deferred_accounting.json:7
- https://docs.frappe.io/erpnext/user/manual/en/process-statement-of-accountsurlerpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.json:8
architecture░▒▓
entry (1) flagged (3) pkg (448)
848 nodes · 2295 edgesscroll to zoom · click node to jump to finding