id: os_tftpd_disable
title: Disable Trivial File Transfer Protocol Service
discussion: |
  If the system does not require Trivial File Transfer Protocol (TFTP), support it is non-essential and _MUST_ be disabled.

  The information system _MUST_ be configured to provide only essential capabilities. Disabling TFTP helps prevent the unauthorized connection of devices and the unauthorized transfer of information.

  NOTE: TFTP service is disabled at startup by default macOS.
references:
  nist:
    cce:
      macos_27:
        - CCE-XXXXX-X
      macos_26:
        - CCE-95323-2
      macos_15:
        - CCE-94317-5
      macos_14:
        - CCE-92914-1
    800-53r5:
      - AC-3
      - IA-5(1)
      - AC-17
    800-171r3:
      - 03.01.02
      - 03.04.06
      - 03.05.07
  disa:
    cci:
      - CCI-000197
      - CCI-000213
    srg:
      - SRG-OS-000080-GPOS-00048
      - SRG-OS-000074-GPOS-00042
    disa_stig:
      macos_26:
        - APPL-26-002038
      macos_15:
        - APPL-15-002038
      macos_14:
        - APPL-14-002038
    cmmc:
      - AC.L1-3.1.1
      - IA.L2-3.5.7
      - IA.L2-3.5.8
      - IA.L2-3.5.9
  bzk:
    bio:
      - 8.27
      - 8.27.01
  hhs:
    hicp:
      - 2.L.A
      - 3.L.C
      - 4.L.A
      - ''
  cis:
    controls_v8:
      - 3.3
      - 3.1
      - 5.2
platforms:
  macOS:
    '27.0': {}
    '26.0':
      benchmarks:
        - name: disa_stig
          severity: high
        - name: nlmapgov_plus
      enforcement_info:
        fix:
          shell: |-
            /bin/launchctl bootout system/com.apple.tftpd
            /bin/launchctl disable system/com.apple.tftpd
          additional_info: The system may need to be restarted for the update to take effect.
    '15.0':
      benchmarks:
        - name: disa_stig
          severity: high
        - name: nlmapgov_plus
      enforcement_info:
        check:
          shell: /bin/launchctl print-disabled system | /usr/bin/grep -c '"com.apple.tftpd" => disabled'
          result:
            integer: 1
    enforcement_info:
      check:
        shell: |-
          result="FAIL"
          enabled=$(/bin/launchctl print-disabled system | /usr/bin/grep '"com.apple.tftpd" => enabled')
          running=$(/bin/launchctl print system/com.apple.tftpd 2>/dev/null)

          if [[ -z "$running" ]] && [[ -z "$enabled" ]]; then
            result="PASS"
          elif [[ -n "$running" ]]; then
            result="${result}  RUNNING"
          elif [[ -n "$enabled" ]]; then
            result="${result}  ENABLED"
          fi
          echo $result
        result:
          string: PASS
      fix:
        shell: /bin/launchctl disable system/com.apple.tftpd
        additional_info: The system may need to be restarted for the update to take effect.
tags:
  - 800-53r5_low
  - 800-53r5_moderate
  - 800-53r5_high
  - 800-171
  - cisv8
  - cnssi-1253_low
  - cnssi-1253_high
  - cmmc_lvl2
  - cmmc_lvl1
  - cnssi-1253_moderate
  - hicp_lp
