Threat: Outdated Yii2 Version
- Description: Exploiting known security vulnerabilities present in older versions of the Yii2 framework. Attackers can leverage public exploits to compromise applications running outdated Yii2.
- Impact: Remote Code Execution (RCE), Data Breach, Denial of Service (DoS).
- Affected Yii2 Component: Yii2 Core Framework.
- Risk Severity: Critical to High.
- Mitigation Strategies:
- Update Yii2: Regularly update to the latest stable Yii2 version, including patch releases.
- Security Monitoring: Subscribe to Yii2 security advisories and release notes.
- Description: Exploiting undiscovered or newly discovered vulnerabilities within the core Yii2 framework code itself (e.g., router, request handling, security components).
- Impact: Remote Code Execution (RCE), Data Breach, Denial of Service (DoS).
- Affected Yii2 Component: Yii2 Core Framework (router, request, security, db, etc.).
- Risk Severity: Critical to High.
- Mitigation Strategies:
- Stay Updated: Apply Yii2 security updates and patches promptly.
- Security Audits: Conduct regular security audits and penetration testing.
- WAF: Implement a Web Application Firewall (WAF) for protection.
Threat: Deserialization Vulnerabilities
- Description: Exploiting insecure deserialization practices, potentially by injecting malicious serialized data into the application, if developers misuse deserialization features in Yii2 or vulnerabilities exist in underlying PHP serialization.
- Impact: Remote Code Execution (RCE).
- Affected Yii2 Component: Potentially any component using
unserialize()
if misused. - Risk Severity: Critical.
- Mitigation Strategies:
- Avoid Deserialization: Avoid deserializing untrusted data.
- Validate Data: If necessary, carefully validate and sanitize data before deserialization.
- Use JSON: Prefer JSON or other safer data formats over PHP serialization.
Threat: Debug Mode Enabled in Production
- Description: Accessing sensitive information exposed by Yii2's debug mode being enabled in a production environment, aiding reconnaissance and further attacks.
- Impact: Information Disclosure (application paths, database credentials if misconfigured, internal code structure).
- Affected Yii2 Component: Yii2 Debug Module, Application Configuration.
- Risk Severity: High.
- Mitigation Strategies:
- Disable Debug Mode: Ensure debug mode is disabled in production configuration (
YII_DEBUG=false
or'debug' => false
inweb.php
). - Configuration Review: Regularly review production configuration to confirm debug mode is off.
- Disable Debug Mode: Ensure debug mode is disabled in production configuration (
Threat: Insecure Cookie Configuration
- Description: Exploiting misconfigured cookie settings in Yii2 to perform session hijacking or other cookie-related attacks.
- Impact: Session Hijacking, Cross-Site Scripting (XSS) amplification.
- Affected Yii2 Component: Yii2 Request Component (cookie configuration), Session Component.
- Risk Severity: High.
- Mitigation Strategies:
- Secure Cookie Flags: Properly configure cookie settings in Yii2's
request
component, settinghttpOnly
andsecure
flags. - Strong Validation Key: Generate strong, unpredictable cookie validation keys in Yii2 configuration.
- HTTPS: Enforce HTTPS to protect cookie transmission.
- Secure Cookie Flags: Properly configure cookie settings in Yii2's
- Description: Gaining access to sensitive configuration files (like
.env
) containing credentials and secrets due to web server misconfiguration or improper access control. - Impact: Direct access to sensitive credentials (database passwords, API keys), leading to full application compromise.
- Affected Yii2 Component: Application Configuration Files, Web Server Configuration.
- Risk Severity: Critical.
- Mitigation Strategies:
- Web Server Configuration: Prevent direct web access to configuration files via web server configuration (e.g., deny access to
.env
in web root). - Secure Storage: Store sensitive configuration outside the web root and access it securely via environment variables.
- .gitignore: Exclude sensitive files from version control using
.gitignore
.
- Web Server Configuration: Prevent direct web access to configuration files via web server configuration (e.g., deny access to
- Description: Uploading malicious files due to insecure file upload configurations in Yii2 applications, potentially leading to remote code execution.
- Impact: Remote Code Execution (RCE), Defacement, Data Breach.
- Affected Yii2 Component: File Upload Handling (controllers, actions, models), File Helper.
- Risk Severity: High to Critical.
- Mitigation Strategies:
- Strict Validation: Implement strict file upload validation (file type, size, MIME type) using Yii2 validation features.
- Non-Executable Storage: Store uploaded files outside the web root.
- Secure Serving: Serve uploaded files through a secure mechanism preventing direct execution.
Threat: Vulnerable Yii2 Extensions
- Description: Exploiting known vulnerabilities in Yii2 extensions used by the application, similar to core framework vulnerabilities.
- Impact: Remote Code Execution (RCE), Data Breach, Denial of Service (DoS).
- Affected Yii2 Component: Yii2 Extensions (specific extension components).
- Risk Severity: Critical to High.
- Mitigation Strategies:
- Vet Extensions: Carefully vet Yii2 extensions before use, choosing reputable and maintained ones.
- Update Extensions: Regularly update extensions to their latest versions.
- Security Monitoring: Monitor security advisories for used Yii2 extensions.
- Description: Manipulating input data to modify unintended model attributes due to improper Active Record configuration in Yii2, bypassing intended data constraints.
- Impact: Privilege Escalation, Data Manipulation.
- Affected Yii2 Component: Yii2 Active Record, Models, Controllers.
- Risk Severity: High.
- Mitigation Strategies:
- Define Safe Attributes: Carefully define
safe
attributes in Active Record models using scenarios and validation rules. - Controlled Assignment: Use
load()
with specific attribute lists or scenarios to control attribute assignment. - Input Validation: Validate user input before assigning to model attributes.
- Define Safe Attributes: Carefully define
- Description: Injecting malicious SQL code due to insecure use of raw SQL queries or improper usage of Yii2's query builder, bypassing intended SQL injection protection.
- Impact: SQL Injection, Data Breach, Data Manipulation.
- Affected Yii2 Component: Yii2 DB Component, Query Builder, Active Record, Controllers, Models.
- Risk Severity: Critical to High.
- Mitigation Strategies:
- Use Query Builder/Active Record: Primarily use Yii2's query builder and Active Record.
- Parameterized Queries: Always use parameterized queries or prepared statements for user input in SQL.
- Avoid Raw SQL: Minimize or eliminate the use of raw SQL queries.
- Description: Compromising user passwords due to weak password hashing algorithms or configurations in Yii2's security component.
- Impact: Compromised User Passwords, Account Takeovers.
- Affected Yii2 Component: Yii2 Security Component (password hashing).
- Risk Severity: High.
- Mitigation Strategies:
- Strong Hashing Algorithm: Use strong password hashing algorithms like bcrypt or Argon2 configured in Yii2's security component.
- Secure Configuration: Ensure Yii2's security component is configured for secure password hashing.
Threat: Insecure Authentication Logic
- Description: Bypassing or exploiting flaws in custom authentication logic or misuse of Yii2's authentication components, leading to unauthorized access.
- Impact: Bypassing Authentication, Unauthorized Access.
- Affected Yii2 Component: Yii2 Auth Component, User Component, Controllers, Models, Custom Authentication Logic.
- Risk Severity: High to Critical.
- Mitigation Strategies:
- Review Custom Logic: Thoroughly review and test custom authentication logic.
- Use Yii2 Auth Features: Utilize Yii2's built-in authentication features and follow security best practices.
- MFA: Implement Multi-Factor Authentication (MFA) for enhanced security.
- Description: Gaining unauthorized access to resources or functionalities due to missing or insufficient authorization checks in Yii2 applications, leading to privilege escalation.
- Impact: Unauthorized Access, Privilege Escalation.
- Affected Yii2 Component: Yii2 Auth Component (RBAC), Access Control Filter (ACF), Controllers, Models, Custom Authorization Logic.
- Risk Severity: High to Critical.
- Mitigation Strategies:
- Implement Authorization: Implement robust authorization checks at all relevant points (controllers, actions).
- Use RBAC/ACF: Utilize Yii2's RBAC system or Access Control Filter for authorization.
- Least Privilege: Follow the principle of least privilege, granting only necessary permissions.