Why Odoo Needs Security Scanning
Odoo instances are increasingly targeted because they store valuable business data — customer records, financial data, employee information, and trade secrets. Most Odoo security issues are not zero-day exploits but misconfigurations: exposed admin panels, default passwords, overly permissive access rules, and unpatched dependencies.
An AI security agent systematically checks for these issues — something that manual security reviews cover once and then forget about as the system evolves.
What the Agent Scans
Authentication Security
- Default credentials — Checks if admin/admin, demo/demo, or common passwords are still active
- Password policy — Verifies minimum length, complexity, and rotation requirements
- Two-factor authentication — Checks if 2FA is enabled for admin and privileged accounts
- Session configuration — Session timeout settings, cookie security flags (HttpOnly, Secure, SameSite)
- API key security — Identifies API keys that have not been rotated
Access Control
- Over-privileged users — Users with admin/system group membership who should not have it
- Missing record rules — Custom models without proper multi-company or department-level access control
- Public endpoints — Controllers with
auth='none'orauth='public'that expose sensitive data - CORS configuration — Overly permissive CORS policies allowing requests from any origin
- CSRF protection — Endpoints with
csrf=Falsethat handle sensitive operations
Infrastructure Security
- SSL/TLS — Certificate validity, protocol version (TLS 1.2+ required), cipher suite strength
- Exposed ports — Database port (5432), Odoo admin (8069), longpolling (8072) accessible from the internet
- Database access — Is the database manager (/web/database/manager) accessible without authentication?
- Server headers — Information disclosure through server version headers
- Proxy configuration — Nginx/Apache proxy settings for security headers (X-Frame-Options, CSP, HSTS)
Application Security
- Odoo version — Is the instance running a version with known security patches?
- Module vulnerabilities — Are custom or third-party modules using deprecated or insecure patterns?
- File upload handling — Are file uploads properly validated and restricted?
- SQL injection vectors — Custom modules using raw SQL without proper parameterization
- XSS vectors — QWeb templates rendering unescaped user input
Data Protection
- Sensitive data exposure — Are credit card numbers, SSNs, or passwords stored in plain text?
- Backup encryption — Are backup files encrypted at rest?
- Audit logging — Is access to sensitive records (payroll, medical, financial) logged?
- Data retention — Are old records being retained longer than necessary?
Common Vulnerabilities Found
| Vulnerability | Severity | How Often Found | Fix |
|---|---|---|---|
| Default admin password | Critical | 15% of instances | Change immediately, enable 2FA |
| Database manager exposed | Critical | 30% of instances | Block /web/database in nginx or set db_list filter |
| No SSL certificate | High | 20% of instances | Install Let's Encrypt certificate |
| PostgreSQL port exposed | High | 25% of instances | Firewall rule: allow only localhost |
| Missing security headers | Medium | 60% of instances | Configure nginx proxy headers |
| Over-privileged users | Medium | 40% of instances | Audit and downgrade group memberships |
| No log rotation | Low | 50% of instances | Configure logrotate |
Scan Report Format
The agent produces a prioritized report:
- Critical — Fix immediately (exposed databases, default passwords)
- High — Fix within 24 hours (missing SSL, exposed ports)
- Medium — Fix within 1 week (missing headers, over-privileged users)
- Low — Fix when convenient (log rotation, cosmetic issues)
- Informational — Good practices to adopt (2FA, backup encryption)
Automated vs Manual Security Review
| Aspect | AI Agent | Manual Pentest |
|---|---|---|
| Coverage | Configuration, access control, known patterns | Creative exploitation, business logic flaws |
| Frequency | Continuous / daily | Annual or quarterly |
| Cost | Included in hosting (DeployMonkey) | $5,000-50,000 per engagement |
| Speed | Minutes | Days to weeks |
| Depth | Systematic, thorough for known issues | Deep, creative for unknown issues |
Both approaches complement each other. The AI agent handles continuous, automated scanning for known vulnerability patterns. Manual pentesting covers creative exploitation scenarios and business logic flaws that automated tools miss.
Getting Started
DeployMonkey includes security scanning as part of its AI monitoring suite. The agent checks your Odoo instance configuration, server settings, and access controls automatically. For the most critical issues (exposed database manager, default passwords), it alerts immediately. Deploy Odoo on DeployMonkey for built-in security monitoring on every plan.