Skip to content

Fix NWM dataservice running without caller impersonation - #56

Draft
js665999 wants to merge 1 commit into
v3.x/masterfrom
users/js665999/fix-nwm-authorization
Draft

Fix NWM dataservice running without caller impersonation#56
js665999 wants to merge 1 commit into
v3.x/masterfrom
users/js665999/fix-nwm-authorization

Conversation

@js665999

Copy link
Copy Markdown

Summary

  • ipExplorerDataServiceInstaller set authType = SERVICE_AUTH_NATIVE_WITH_SESSION_TOKEN (authentication only) and doImpersonation = FALSE, so every privileged NWM query (connections, listeners, ports, info) was dispatched to the ZIS cross-memory server under the ZSS/ZIS server's own identity, never the calling end user's.
  • The only SAF gate in the call chain — zisNWMServiceFunction in zss (cmsTestAuth2 against <prod-id>.IS.SRV.NWM, class FACILITY) — is a coarse, optional, admin-togglable "is this ZIS service enabled at all" switch, not a per-user, per-TCPIP-stack check against the real z/OS NETMGMT authorization (EZB.NETMGMT.sysname.tcpname.*, class SERVAUTH). With no impersonation, even that check tests the server's identity, not the caller's.
  • Net effect: any authenticated Zowe Desktop user could enumerate every TCP connection (peer IPs/ports, ASIDs, jobnames, byte counts), every listener, and all reserved ports across any TCP/IP stack on the LPAR, regardless of their own NETSTAT/NETMGMT authority.
  • Fix: set httpService->doImpersonation = TRUE (dataService/src/ipExplorerDataService.c), matching the pattern already used by every other privileged zss data service that needs real per-user authorization (dataset access, USS file access, certificate/RACF management, server status). This causes the calling task's identity to be the real end user for the duration of the request, so EZBNMIFR's own native EZB.NETMGMT.* SAF check (and the ZIS-side cmsTestAuth2 gate, if enabled) is evaluated against the caller, not the server.

Signed-off-by: js665999 <js665999@broadcom.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Merge Ready

Development

Successfully merging this pull request may close these issues.

2 participants