id: package-json

info:
  name: NPM package.json Disclosure
  author: geeknik,afaq,noraj
  severity: info
  description: |
    All NodeJS packages contain a file, usually in the project root, called package.json - this file holds various metadata relevant to the project generated by package managers such as npm, yarn, pnpm.
  reference:
    - https://docs.npmjs.com/cli/v9/configuring-npm/package-json
    - https://classic.yarnpkg.com/lang/en/docs/package-json/
    - https://pnpm.io/package_json
  metadata:
    verified: true
    max-request: 2
  tags: config,exposure,node,npm

http:
  - method: GET
    path:
      - "{{BaseURL}}/package.json"
      - "{{BaseURL}}/package-lock.json"

    matchers-condition: and
    matchers:
      - type: word
        words:
          - "name"
          - "version"
        condition: and

      - type: word
        part: header
        words:
          - "application/json"

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