This is a list of rules from the OWASP ModSecurity Core Rule Set.
- Handling of false positives / false alarms / blocking of legitimate traffic is explained in this tutorial.
- This page here covers the 3.x release(s). The rule IDs from the 2.x.x release(s) are not listed / covered. Look here for some infos.
- Helper rules are omitted.
- Click on link to be taken to github and land on the definition of the rule.
- The link to github points to the 3.0 dev tree.
- The description / message is the msg action from the rule definition mostly.
- Individual rules in this page can be reached via a shortcut. E.g., https://netnea.com/crs/942100.
- If you are lazy, then create a dynamic bookmark and call it with the rule ID as parameter in the address line of the browser: e.g., crs 942100.
- You like what you see? Why don’t you follow me on twitter @ChrFolini to learn about new ModSecurity stuff I publish.
| Rule ID | Paranoia Level | Severity | Description (msg) |
|---|---|---|---|
| 901001 | PL1 | none | Check if crs-set.conf was loaded |
| 901450 | PL1 | none | Sampling: Disable the rule engine based on sampling_percentage |
| 905100 | PL1 | none | Common Exeptions example rule |
| 905110 | PL1 | none | Common Exeptions example rule |
| 910000 | PL1 | critical | Request from Known Malicious Client (Based on previous traffic violations). |
| 910100 | PL1 | critical | Client IP is from a HIGH Risk Country Location. |
| 910150 | PL1 | critical | HTTP Blacklist match for search engine IP, |
| 910160 | PL1 | critical | HTTP Blacklist match for spammer IP |
| 910170 | PL1 | critical | HTTP Blacklist match for suspicious IP |
| 910180 | PL1 | critical | HTTP Blacklist match for harvester IP |
| 911100 | PL1 | critical | Method is not allowed by policy |
| 912120 | PL1 | none | Denial of Service (DoS) attack identified from %{tx.real_ip} (%{tx.dos_block_counter} hits since last alert)" |
| 912170 | PL1 | none | Potential Denial of Service (DoS) Attack from %{tx.real_ip} - # of Request Bursts: %{ip.dos_burst_counter} |
| 912171 | PL2 | none | Potential Denial of Service (DoS) Attack from %{tx.real_ip} - # of Request Bursts: %{ip.dos_burst_counter} |
| 913100 | PL1 | critical | Found User-Agent associated with security scanner |
| 913101 | PL2 | critical | Found User-Agent associated with scripting/generic HTTP client |
| 913102 | PL2 | critical | Found User-Agent associated with web crawler/bot |
| 913110 | PL1 | critical | Found request header associated with security scanner |
| 913120 | PL1 | critical | Found request filename/argument associated with security scanner |
| 920100 | PL1 | notice | Invalid HTTP Request Line |
| 920120 | PL1 | critical | Attempted multipart/form-data bypass |
| 920130 | PL1 | critical | Failed to parse request body. |
| 920140 | PL1 | critical | Multipart request body failed strict validation: |
| 920160 | PL1 | critical | Content-Length HTTP header is not numeric. |
| 920170 | PL1 | critical | GET or HEAD Request with Body Content. |
| 920180 | PL1 | notice | POST request missing Content-Length Header. |
| 920190 | PL1 | warning | Range: Invalid Last Byte Value. |
| 920200 | PL2 | warning | Range: Too many fields (6 or more) |
| 920201 | PL2 | warning | Range: Too many fields for pdf request (35 or more) |
| 920202 | PL4 | warning | Range: Too many fields for pdf request (6 or more) |
| 920210 | PL1 | warning | Multiple/Conflicting Connection Header Data Found. |
| 920220 | PL1 | warning | URL Encoding Abuse Attack Attempt |
| 920230 | PL2 | warning | Multiple URL Encoding Detected |
| 920240 | PL1 | warning | URL Encoding Abuse Attack Attempt |
| 920250 | PL1 | warning | UTF8 Encoding Abuse Attack Attempt |
| 920260 | PL1 | warning | Unicode Full/Half Width Abuse Attack Attempt |
| 920270 | PL1 | error | Invalid character in request (null character) |
| 920271 | PL2 | critical | Invalid character in request (non printable characters) |
| 920272 | PL3 | critical | Invalid character in request (outside of printable chars below ascii 127) |
| 920273 | PL4 | critical | Invalid character in request (outside of very strict set) |
| 920274 | PL4 | critical | Invalid character in request headers (outside of very strict set) |
| 920280 | PL1 | warning | Request Missing a Host Header |
| 920290 | PL1 | warning | Empty Host Header |
| 920300 | PL2 | notice | Request Missing an Accept Header |
| 920310 | PL1 | notice | Request Has an Empty Accept Header |
| 920311 | PL1 | notice | Request Has an Empty Accept Header |
| 920320 | PL2 | notice | Missing User Agent Header |
| 920330 | PL1 | notice | Empty User Agent Header |
| 920340 | PL1 | notice | Request Containing Content, but Missing Content-Type header |
| 920350 | PL1 | warning | Host header is a numeric IP address |
| 920360 | PL1 | critical | Argument name too long |
| 920370 | PL1 | critical | Argument value too long |
| 920380 | PL1 | critical | Too many arguments in request |
| 920390 | PL1 | critical | Total arguments size exceeded |
| 920400 | PL1 | critical | Uploaded file size too large |
| 920410 | PL1 | critical | Total uploaded files size too large |
| 920420 | PL1 | critical | Request content type is not allowed by policy |
| 920430 | PL1 | critical | HTTP protocol version is not allowed by policy |
| 920440 | PL1 | critical | URL file extension is restricted by policy |
| 920450 | PL1 | critical | HTTP header is restricted by policy (%{MATCHED_VAR}) |
| 920460 | PL4 | critical | Abnormal character escape detected |
| 921100 | PL1 | critical | HTTP Request Smuggling Attack. |
| 921110 | PL1 | critical | HTTP Request Smuggling Attack |
| 921120 | PL1 | critical | HTTP Response Splitting Attack |
| 921130 | PL1 | critical | HTTP Response Splitting Attack |
| 921140 | PL1 | critical | HTTP Header Injection Attack via headers |
| 921150 | PL1 | critical | HTTP Header Injection Attack via payload (CR/LF detected) |
| 921151 | PL2 | critical | HTTP Header Injection Attack via payload (CR/LF detected) |
| 921160 | PL1 | critical | HTTP Header Injection Attack via payload (CR/LF and header-name detected) |
| 921180 | PL3 | critical | HTTP Parameter Pollution (%{TX.1}) |
| 930100 | PL1 | critical | Path Traversal Attack (/../) |
| 930110 | PL1 | critical | Path Traversal Attack (/../) |
| 930120 | PL1 | critical | OS File Access Attempt |
| 930130 | PL1 | critical | Restricted File Access Attempt |
| 931100 | PL1 | critical | Possible Remote File Inclusion (RFI) Attack: URL Parameter using IP Address |
| 931110 | PL1 | critical | Possible Remote File Inclusion (RFI) Attack: Common RFI Vulnerable Parameter Name used w/URL Payload |
| 931120 | PL1 | critical | Possible Remote File Inclusion (RFI) Attack: URL Payload Used w/Trailing Question Mark Character (?) |
| 931130 | PL2 | critical | Possible Remote File Inclusion (RFI) Attack: Off-Domain Reference/Link |
| 932100 | PL1 | critical | Remote Command Execution: Unix Command Injection |
| 932105 | PL1 | critical | Remote Command Execution: Unix Command Injection |
| 932110 | PL1 | critical | Remote Command Execution: Windows Command Injection |
| 932115 | PL1 | critical | Remote Command Execution: Windows Command Injection |
| 932120 | PL1 | critical | Remote Command Execution: Windows PowerShell Command Found |
| 932130 | PL1 | critical | Remote Command Execution: Unix Shell Expression Found |
| 932140 | PL1 | critical | Remote Command Execution: Windows FOR/IF Command Found |
| 932150 | PL1 | critical | Remote Command Execution: Direct Unix Command Execution |
| 932160 | PL1 | critical | Remote Command Execution: Unix Shell Code Found |
| 932170 | PL1 | critical | Remote Command Execution: Shellshock (CVE-2014-6271) |
| 932171 | PL1 | critical | Remote Command Execution: Shellshock (CVE-2014-6271) |
| 933100 | PL1 | critical | PHP Injection Attack: Opening/Closing Tag Found |
| 933110 | PL1 | critical | PHP Injection Attack: PHP Script File Upload Found |
| 933111 | PL3 | critical | PHP Injection Attack: PHP Script File Upload Found |
| 933120 | PL1 | critical | PHP Injection Attack: Configuration Directive Found |
| 933130 | PL1 | critical | PHP Injection Attack: Variables Found |
| 933131 | PL3 | critical | PHP Injection Attack: Variables Found |
| 933140 | PL1 | critical | PHP Injection Attack: I/O Stream Found |
| 933150 | PL1 | critical | PHP Injection Attack: High-Risk PHP Function Name Found |
| 933151 | PL2 | critical | PHP Injection Attack: Medium-Risk PHP Function Name Found |
| 933160 | PL1 | critical | PHP Injection Attack: High-Risk PHP Function Call Found |
| 933161 | PL3 | critical | PHP Injection Attack: Low-Value PHP Function Call Found |
| 933170 | PL1 | critical | PHP Injection Attack: Serialized Object Injection |
| 933180 | PL1 | critical | PHP Injection Attack: Variable Function Call Found |
| 941100 | PL1 | critical | XSS Attack Detected via libinjection |
| 941110 | PL1 | critical | XSS Filter - Category 1: Script Tag Vector |
| 941120 | PL1 | critical | XSS Filter - Category 2: Event Handler Vector |
| 941130 | PL1 | critical | XSS Filter - Category 3: Attribute Vector |
| 941140 | PL1 | critical | XSS Filter - Category 4: Javascript URI Vector |
| 941150 | PL1 | critical | XSS Filter - Category 5: Disallowed HTML Attributes |
| 941160 | PL1 | critical | NoScript XSS InjectionChecker: HTML Injection |
| 941170 | PL1 | critical | NoScript XSS InjectionChecker: Attribute Injection |
| 941180 | PL1 | critical | Node-Validator Blacklist Keywords |
| 941190 | PL1 | critical | IE XSS Filters - Attack Detected. |
| 941200 | PL1 | critical | IE XSS Filters - Attack Detected. |
| 941210 | PL1 | critical | IE XSS Filters - Attack Detected. |
| 941220 | PL1 | critical | IE XSS Filters - Attack Detected. |
| 941230 | PL1 | critical | IE XSS Filters - Attack Detected. |
| 941240 | PL1 | critical | IE XSS Filters - Attack Detected. |
| 941250 | PL1 | critical | IE XSS Filters - Attack Detected. |
| 941260 | PL1 | critical | IE XSS Filters - Attack Detected. |
| 941270 | PL1 | critical | IE XSS Filters - Attack Detected. |
| 941280 | PL1 | critical | IE XSS Filters - Attack Detected. |
| 941290 | PL1 | critical | IE XSS Filters - Attack Detected. |
| 941300 | PL1 | critical | IE XSS Filters - Attack Detected. |
| 941310 | PL1 | critical | US-ASCII Malformed Encoding XSS Filter - Attack Detected. |
| 941320 | PL2 | critical | Possible XSS Attack Detected - HTML Tag Handler |
| 941330 | PL2 | critical | IE XSS Filters - Attack Detected. |
| 941340 | PL2 | critical | IE XSS Filters - Attack Detected. |
| 941350 | PL1 | critical | UTF-7 Encoding IE XSS - Attack Detected. |
| 942100 | PL1 | critical | SQL Injection Attack Detected via libinjection |
| 942110 | PL2 | warning | SQL Injection Attack: Common Injection Testing Detected |
| 942120 | PL2 | critical | SQL Injection Attack: SQL Operator Detected |
| 942130 | PL2 | critical | SQL Injection Attack: SQL Tautology Detected. |
| 942140 | PL1 | critical | SQL Injection Attack: Common DB Names Detected |
| 942150 | PL2 | critical | SQL Injection Attack |
| 942160 | PL1 | critical | Detects blind sqli tests using sleep() or benchmark(). |
| 942170 | PL1 | critical | Detects SQL benchmark and sleep injection attempts including conditional queries |
| 942180 | PL2 | critical | Detects basic SQL authentication bypass attempts 1/3 |
| 942190 | PL1 | critical | Detects MSSQL code execution and information gathering attempts |
| 942200 | PL2 | critical | Detects MySQL comment-/space-obfuscated injections and backtick termination |
| 942210 | PL2 | critical | Detects chained SQL injection attempts 1/2 |
| 942220 | PL1 | critical | Looking for intiger overflow attacks, these are taken from skipfish, except 3.0.00738585072007e-308 is the "magic number" crash |
| 942230 | PL1 | critical | Detects conditional SQL injection attempts |
| 942240 | PL1 | critical | Detects MySQL charset switch and MSSQL DoS attempts |
| 942250 | PL1 | critical | Detects MATCH AGAINST, MERGE and EXECUTE IMMEDIATE injections |
| 942251 | PL3 | critical | Detects HAVING injections |
| 942260 | PL2 | critical | Detects basic SQL authentication bypass attempts 2/3 |
| 942270 | PL1 | critical | Looking for basic sql injection. Common attack string for mysql, oracle and others. |
| 942280 | PL1 | critical | Detects Postgres pg_sleep injection, waitfor delay attacks and database shutdown attempts |
| 942290 | PL1 | critical | Finds basic MongoDB SQL injection attempts |
| 942300 | PL2 | critical | Detects MySQL comments, conditions and ch(a)r injections |
| 942310 | PL2 | critical | Detects chained SQL injection attempts 2/2 |
| 942320 | PL1 | critical | Detects MySQL and PostgreSQL stored procedure/function injections |
| 942330 | PL2 | critical | Detects classic SQL injection probings 1/2 |
| 942340 | PL2 | critical | Detects basic SQL authentication bypass attempts 3/3 |
| 942350 | PL1 | critical | Detects MySQL UDF injection and other data/structure manipulation attempts |
| 942360 | PL1 | critical | Detects concatenated basic SQL injection and SQLLFI attempts |
| 942370 | PL2 | critical | Detects classic SQL injection probings 2/2 |
| 942380 | PL2 | critical | SQL Injection Attack |
| 942390 | PL2 | critical | SQL Injection Attack |
| 942400 | PL2 | critical | SQL Injection Attack |
| 942410 | PL2 | critical | SQL Injection Attack |
| 942420 | PL3 | warning | Restricted SQL Character Anomaly Detection (cookies): # of special characters exceeded (8) |
| 942421 | PL4 | warning | Restricted SQL Character Anomaly Detection (cookies): # of special characters exceeded (3) |
| 942430 | PL2 | warning | Restricted SQL Character Anomaly Detection (args): # of special characters exceeded (12) |
| 942431 | PL3 | warning | Restricted SQL Character Anomaly Detection (args): # of special characters exceeded (6) |
| 942432 | PL4 | warning | Restricted SQL Character Anomaly Detection (args): # of special characters exceeded (2) |
| 942440 | PL2 | critical | SQL Comment Sequence Detected. |
| 942450 | PL2 | critical | SQL Hex Encoding Identified |
| 942460 | PL3 | warning | Meta-Character Anomaly Detection Alert - Repetitive Non-Word Characters |
| 943100 | PL1 | critical | Possible Session Fixation Attack: Setting Cookie Values in HTML |
| 943110 | PL1 | critical | Possible Session Fixation Attack: SessionID Parameter Name with Off-Domain Referer |
| 943120 | PL1 | critical | Possible Session Fixation Attack: SessionID Parameter Name with No Referer |
| 949100 | PL1 | none | Request Denied by IP Reputation Enforcement. |
| 949110 | PL1 | none | Check of inbound anomaly score |
| 950100 | PL2 | error | The Application Returned a 500-Level Status Code |
| 950130 | PL1 | error | Directory Listing |
| 951110 | PL1 | critical | Microsoft Access SQL Information Leakage |
| 951120 | PL1 | critical | Oracle SQL Information Leakage |
| 951130 | PL1 | critical | DB2 SQL Information Leakage |
| 951140 | PL1 | critical | EMC SQL Information Leakage |
| 951150 | PL1 | critical | firebird SQL Information Leakage |
| 951160 | PL1 | critical | Frontbase SQL Information Leakage |
| 951170 | PL1 | critical | hsqldb SQL Information Leakage |
| 951180 | PL1 | critical | informix SQL Information Leakage |
| 951190 | PL1 | critical | ingres SQL Information Leakage |
| 951200 | PL1 | critical | interbase SQL Information Leakage |
| 951210 | PL1 | critical | maxDB SQL Information Leakage |
| 951220 | PL1 | critical | mssql SQL Information Leakage |
| 951230 | PL1 | critical | mysql SQL Information Leakage |
| 951240 | PL1 | critical | postgres SQL Information Leakage |
| 951250 | PL1 | critical | sqlite SQL Information Leakage |
| 951260 | PL1 | critical | Sybase SQL Information Leakage |
| 952100 | PL1 | error | Java Source Code Leakage |
| 952110 | PL1 | error | Java Errors |
| 953100 | PL1 | error | PHP Information Leakage |
| 953110 | PL1 | error | PHP source code leakage |
| 953120 | PL1 | error | PHP source code leakage |
| 954100 | PL1 | error | Disclosure of IIS install location |
| 954110 | PL1 | error | Application Availability Error |
| 954120 | PL1 | error | IIS Information Leakage |
| 954130 | PL1 | error | IIS Information Leakage |
| 959100 | PL1 | none | Check of outbound anomaly score |
| 980100 | PL1 | none | Anomaly score correlation rule |
| 980110 | PL1 | none | Anomaly score correlation rule |
| 980120 | PL1 | none | Anomaly score correlation rule |
| 980130 | PL1 | none | Anomaly score correlation rule |
| 980140 | PL1 | none | Anomaly score correlation rule |
| 9001000 | PL1 | none | Drupal rule exception |
| 9001110 | PL1 | none | Drupal rule exception |
| 9001112 | PL1 | none | Drupal rule exception |
| 9001114 | PL1 | none | Drupal rule exception |
| 9001116 | PL1 | none | Drupal rule exception |
| 9001120 | PL1 | none | Drupal rule exception |
| 9001122 | PL1 | none | Drupal rule exception |
| 9001124 | PL1 | none | Drupal rule exception |
| 9001126 | PL1 | none | Drupal rule exception |
| 9001128 | PL1 | none | Drupal rule exception |
| 9001140 | PL1 | none | Drupal rule exception |
| 9001150 | PL1 | none | Drupal rule exception |
| 9001170 | PL1 | none | Drupal rule exception |
| 9001180 | PL1 | none | Drupal rule exception |
| 9001182 | PL1 | none | Drupal rule exception |
| 9001184 | PL1 | none | Drupal rule exception |
| 9001200 | PL1 | none | Drupal rule exception |
| 9001202 | PL1 | none | Drupal rule exception |
| 9001204 | PL1 | none | Drupal rule exception |
| 9001206 | PL1 | none | Drupal rule exception |
| 9001208 | PL1 | none | Drupal rule exception |
| 9001210 | PL1 | none | Drupal rule exception |
| 9001212 | PL1 | none | Drupal rule exception |
| 9001214 | PL1 | none | Drupal rule exception |
| 9001216 | PL1 | none | Drupal rule exception |
| 9002000 | PL1 | none | WordPress rule exception |
| 9002001 | PL1 | none | WordPress rule exception |
| 9002100 | PL1 | none | WordPress rule exception |
| 9002120 | PL1 | none | WordPress rule exception |
| 9002130 | PL1 | none | WordPress rule exception |
| 9002150 | PL1 | none | WordPress rule exception |
| 9002160 | PL1 | none | WordPress rule exception |
| 9002200 | PL1 | none | WordPress rule exception |
| 9002400 | PL1 | none | WordPress rule exception |
| 9002401 | PL1 | none | WordPress rule exception |
| 9002410 | PL1 | none | WordPress rule exception |
| 9002420 | PL1 | none | WordPress rule exception |
| 9002520 | PL1 | none | WordPress rule exception |
| 9002530 | PL1 | none | WordPress rule exception |
| 9002540 | PL1 | none | WordPress rule exception |
| 9002700 | PL1 | none | WordPress rule exception |
| 9002710 | PL1 | none | WordPress rule exception |
| 9002720 | PL1 | none | WordPress rule exception |
| 9002730 | PL1 | none | WordPress rule exception |
| 9002740 | PL1 | none | WordPress rule exception |
| 9002750 | PL1 | none | WordPress rule exception |
| 9002800 | PL1 | none | WordPress rule exception |
| 9002810 | PL1 | none | WordPress rule exception |
| 9002820 | PL1 | none | WordPress rule exception |
| 9002900 | PL1 | none | WordPress rule exception |
