Anonymously Exposed ICF Services (SICF)
The Internet Communication Framework (ICF) is the HTTP(S)/SMTP engine of every AS ABAP instance, served by the Internet Communication Manager (ICM) on the instance-derived HTTP 8NNN / HTTPS 44NNN ports (NNN = three-digit instance number). All ICF web applications are shipped disabled by default and activated per business need via transaction SICF, which presents a tree of hundreds of URL-mapped services. In practice, landscapes frequently over-activate: installation guides that say “activate everything under /default_host/sap”, Basis admins enabling entire subtrees rather than individual leaves, and services enabled for a one-time scenario that are never deactivated afterwards.
Two distinct risk classes fall under “anonymously exposed ICF services”:
- Intentional pre-auth info-leak endpoints - services SAP ships specifically to answer before authentication (so SAP GUI/SAP Logon clients can identify a system before a user logs on).
GET /sap/public/inforeturns a SOAP-wrappedRFCSI_EXPORTstructure - SID, hostname, kernel release, OS, DB type, SAP release - pre-auth on most kernels (a Java stack 404s here, making a200also a positive ABAP-vs-Java signal).GET /sap/public/pingis a trivial connectivity/liveness check. Both are demonstrated as commonly reachable anonymously in published SAP-hacking walkthroughs. The Message Server HTTP endpointGET /msgserver/text/logon(81NN) leaks the same<host>_<SID>_<NN>routing string in plain text. SAPControl SOAP (5NN13) exposes unauthenticated methods (GetSystemInstanceList, etc.). - Over-activated internal-use services - ICF nodes SAP explicitly documents as “SAP-internal use only” or development-only, which if left active on a production/internet-facing ICM allow far more than information disclosure:
/sap/bc/soap/rfc(arbitrary RFC-enabled function-module calls over SOAP, gated only by the calling user’s RFC authorizations - not by any additional check at the service level),/sap/bc/report(URL-driven report/transaction execution),/sap/bc/gui/sap/its/webgui(full SAP GUI in a browser),/sap/bc/webrfc,/sap/bc/FormToRfc,/sap/bc/xrfc//sap/bc/xrfc_test,/sap/bc/echo//sap/bc/error(reflected-XSS-capable diagnostic services),/sap/bc/bsp/sap/certreq/certmapand/sap/bc/bsp/sap/bsp_veri/icf(reflected XSS / session-token theft),/sap/bc/IDoc_XML//sap/bc/srt/IDoc(inbound IDoc processing).
NoteThe ICM’s built-in web administration interface (/sap/admin, activated viaicm/HTTP/admin_XX) is a separate, higher-value exposure: it grants powerful system-level control (restart ICM, view connections, adjust parameters) and must never be reachable outside a trusted admin network.
Anonymously reachable ICF services compromise confidentiality directly - SID/hostname/kernel/OS/DB-type disclosure feeds target selection for every other unauthenticated technique in this section (CVE applicability, default-credential client enumeration, gateway/message-server attacks) - and, where an internal-use service was left active without the intended compensating restriction, can additionally compromise integrity and availability: /sap/bc/soap/rfc and /sap/bc/report extend whatever RFC/transaction authorizations the assigned service user holds to any anonymous caller who can reach the ICM, and the reflected-XSS-capable diagnostic services enable session/credential theft against legitimate users who click a crafted link.
- SAPMAP
modules/discovery/sapmap_scanner.py- six-channel unauthenticated fingerprint, includingGET /sap/public/info(SOAPRFCSI_EXPORTleak;200=ABAP-likely,404=Java signal), Message ServerGET /msgserver/text/logon(81NN), SAPControl SOAPGetSystemInstanceList/AccessCheck(5NN13), and SAPHostControl (1128/1129) system enumeration. - Manual equivalent:
nmapwithgelim/nmap-sapservice probes;curl/openssl s_clientdirectly against/sap/public/info,/sap/public/ping, SAPControl SOAP,/msgserver/text/logon. - SICF tree review (transaction
SICF) or blind URL enumeration against the ICM8NNN/44NNNports for over-activated internal-use services (/sap/bc/soap/rfc,/sap/bc/gui/sap/its/webgui,/sap/bc/report,/sap/bc/webrfc,/sap/bc/echo,/sap/bc/IDoc_XML, and the BSP/ITS certificate services) - none of these gate on prior authentication at the ICF-entry level, only (for some) on the assigned service user’s own authorizations once reached. - Probe
/sap/admin(ICM web administration interface) ificm/HTTP/admin_XXis active - indicates a high-value, frequently under-protected admin surface.
- Enable ICF services on a demonstrated-need basis only; never blanket-activate a whole subtree (e.g.
/default_host/sap) - activate individual leaf services and their documented dependencies. - Deactivate every internal-use/development-only service not in active use, and apply the corresponding SAP Notes: 1394100 (
/sap/bc/soap/rfc), 626073 (/sap/bc/report,/sap/bc/xrfc,/sap/bc/xrfc_test,/sap/bc/FormToRfc,/sap/bc/echo,/sap/bc/error), 1417568 (/sap/bc/bsp/sap/certreq/certmap), 1422273 (/sap/bc/bsp/sap/bsp_veri/icf), 1487606 (/sap/bc/IDoc_XML,/sap/bc/srt/IDoc). - Restrict or disable
/sap/public/infoand/sap/public/pingwhere not operationally required (ICF service deactivation viaSICF); this only raises fingerprinting cost, since DIAG/gateway-level leaks documented elsewhere remain - combine with hardening those channels too. - Suppress the ICM
Server:response header (icm/HTTP/server_header_suppression). - Restrict the ICM web administration interface (
/sap/admin) to trusted admin networks via firewall/ICM ACL, force HTTPS-only, require strong or client-certificate authentication, and log all access - or disable it entirely if not needed. - Implement an ICM-level ACL (
icm/server_port_XXX = ... ACLFILE=...) to restrict which source networks may reach each HTTP(S) port at all. - Periodically audit the live
SICFtree against a documented required-services allow-list - do this as a recurring control, not a one-time hardening pass.
- ICM/Web Dispatcher access logs: repeated requests to
/sap/public/info,/sap/public/ping,/sap/wdisp/admin,/msgserver/text/logon, or a spread of/sap/bc/*service paths from one source in a short window - an automated ICF-enumeration signature (see also SAPMAP-class network discovery). - ICF logging (transaction
SICFrecording) and, on newer S/4HANA systems, secure-by-default RFC/ICF logging (transactionSDBLOG) for calls to sensitive or internal-use services. - SAPHostControl access logs (
1128/1129) for unauthenticated system-enumeration calls. - Any successful call to
/sap/bc/soap/rfc,/sap/bc/report, or/sap/bc/gui/sap/its/webguifrom an unexpected source IP or outside a documented use case.
- SAP Note 1394100 - Security note: Access to RFC-enabled modules via SOAP
- SAP Note 626073 - Unreleased Internet Communication Framework services
- SAP Note 1417568 - Unauthorized change of contents in CERTREQ and CERTMAP
- SAP Note 1422273 - Unauthorized modification of displayed content in BSP
- SAP Note 1487606 - IDoc inbound processing via HTTP/SOAP
