Walt,

  The documentation you are thinking of may have been
for IDCAMS and AUTHTSF:

TSO/E determines the authorization of commands and programs and 
the execution environment they are running in by analyzing the 
following statements in member IKJTSOxx of SYS1.PARMLIB:

AUTHCMD
    identifies authorized commands to TSO/E
AUTHPGM
    identifies programs that are authorized when invoked via the CALL 
command
AUTHTSF
    identifies programs that are authorized when invoked 
through the TSO/E Service Facility. In most cases these 
programs are not in AUTHPGM. They are primarily those that 
expect more complex parameter lists than that of the CALL 
command and use parameter 7 of the IKJEFTSR parmlist to 
supply parameters to the invoked program. As a general rule 
programs in this list, it should not accept parameters that 
are pointers to code that will be executed (such as exit routines) 
because this might introduce an integrity exposure.
    Note: Do not place programs from any IBM® products in this 
table unless the documentation of that product requires. For 
example, do not put IDCAMS in AUTHTSF.
PLATCMD
    identifies authorized and unauthorized commands that can run on a 
command/program invocation platform.
PLATPGM
    identifies authorized and unauthorized programs that can run on a 
command/program invocation platform. 


Jim Mulder z/OS Diagnosis, Design, Development, Test  IBM Corp. 
Poughkeepsie NY

"IBM Mainframe Discussion List" <IBM-MAIN@LISTSERV.UA.EDU> wrote on 
11/16/2019 04:16:27 PM:

> From: "Walt Farrell" <walt.farr...@gmail.com>
> To: IBM-MAIN@LISTSERV.UA.EDU
> Date: 11/18/2019 01:03 PM
> Subject: Re: AUTHPGM in IKJTSOxx
> Sent by: "IBM Mainframe Discussion List" <IBM-MAIN@LISTSERV.UA.EDU>
> 
> On Sat, 16 Nov 2019 15:30:01 +0000, Leonardo Vaz <leonardo....@cn.ca> 
wrote:
> 
> >I am curious now, does a custom homegrown program have to take 
> extra precautions to be placed under AUTHPGM? What would those be?
> >
> 
> Usually, no.
> 
> Sometimes, depending on what the program does, yes.
> 
> For example, consider a program which accepts as a parameter the 
> address (not the name) of some code to be executed as a kind of 
subroutine. 
> 
> Now consider what might happen if you were to link that program with
> AC(1), place it in a library that MVS considers APF-authorized, and 
> put its name in AUTHPGM. At that point any TSO user could:
> (1) Write a program that had some malicious code in it.
> (2) Invoke your program using IKJEFTSR and passing the address of 
> the malicious code.
> 
> TSO would then pause the user's program (TCB) to preserve System 
> Integrity, invoke your code running authorized, and your code would 
> run the user's malicious code. Your program has then allowed the 
> user to violoate MVS System Integrity.
> 
> There are several solutions:
> (a) Don't put that program in AUTHPGM. If I remember correctly there
> was at least one MVS program whose documentation said it should not 
> be placed in AUTHPGM.
> 
> (b) Code the program to detect it's running authorized, and under 
> TSO, and then skip calling the code. Perhaps, as an alternative, in 
> that situation the program might allow the user to pass a module 
> name instead of an address, and the program could LINK to it, 
> allowing the system to determine whether it is safe to invoke the 
> subroutine module.
> 
> (c) Code the program to detect it's running authorized, and under 
> TSO, and then to perform a security check to see the current user is
> trusted to run the program under TSO. 
> 
> -- 
> Walt
> 
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN



----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to