Uploaded image for project: 'James Server'
  1. James Server
  2. JAMES-3691

JMAP Push: Prevent server-side request forgery

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 3.7.0
    • None
    • None

    Description

      https://jmap.io/spec-core.html#connection-to-unknown-push-server

      ```
      The server MUST ensure the URL is externally resolvable to avoid server-side request forgery, where the server makes a request to a resource on its internal network.
      ```

      We do not do that.

      We should resolve the hostname of the URL and reject it if it belong to one of these network:

      ```
      Private network class A: 10.0.0.0 — 10.255.255.255
      Private network class B: 172.16.0.0 — 172.31.255.255
      Private network class C: 192.168.0.0 — 192.168.255.255
      127.0. 0.0 to 127.255. 255.255
      ```

      This should be done at Push subscription creation, as well as when submitting push notifications.

      *DOD*: integretion tests rejecting server-side request forgery attemps against webadmin.

      Remark: not a CVE vulnerability as it is not part of any released artifact.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              btellier Benoit Tellier
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 40m
                  40m