id: laravel-pulse-unauth

info:
  name: Laravel Pulse - Unauthenticated Dashboard Access
  author: moamenbasel
  severity: medium
  description: |
    Laravel Pulse monitoring dashboard is accessible without authentication. Pulse displays server performance metrics, slow queries, user activity, cache hit rates, and exception logs that could aid attackers in reconnaissance.
  remediation: |
    Configure Pulse's gate method in the PulseServiceProvider to restrict access. Add proper authorization checks using Gate::define in app/Providers/PulseServiceProvider.php.
  reference:
    - https://laravel.com/docs/11.x/pulse#dashboard-authorization
    - https://owasp.org/Top10/A01_2021-Broken_Access_Control/
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
    cvss-score: 5.3
    cwe-id: CWE-306
  metadata:
    verified: true
    max-request: 1
    shodan-query: html:"Laravel Pulse"
  tags: laravel,pulse,monitoring,misconfig,unauth

http:
  - method: GET
    path:
      - "{{BaseURL}}/pulse"

    host-redirects: true
    max-redirects: 2

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - "Laravel Pulse"
          - "livewire"
        condition: and

      - type: status
        status:
          - 200
# digest: 4a0a00473045022100c5e25655f68a8e2dbe1a617a1ced63d5b0de7c4838218341e13529b9165b6e8602206ce2e99420d1d71ecd20787dae2fb2b50b4faea81c701a3a6f2d2d1f5c8a860c:922c64590222798bb761d5b6d8e72950