On Fri, May 13, 2005 at 02:53:00PM -0700, Charles Mills wrote:

> As Gil pointed out, the ONLY new exposure is for authorized programs.
> Formerly, an authorized program could be confident that it's caller was
> either JCL or another trusted (authorized) program. It would thus be a
> reasonably valid assumption that the authorized program would either get
> >= 100 bytes of parms from JCL or something "proper" (however that might
> be defined) from an authorized caller.
[...]
> With PARM= >100 characters, for the first time, the authorized program
> expecting <= 100 bytes might be subject to malicious buffer overflow
> from an untrusted source. The solution is a linker set bit similar to
> AC=1 that says "this authorized program expects that it might get > 100
> bytes if invoked from JCL."
> 
> Charles

By definition, an authorized program is supposed to validity check
everything and not make any assumptions about untrusted input.  It's
a very small leap from there to a conclusion that an authorized
program that breaks in any way due to a long parm was incorrectly
written in the first place.

I've never understood why the exec parm needs to be copied somewhere
by the receiving program, except for printing in which case you
probably need to check the length anyway.  I don't feel like groveling
through my source libs right now, but I'd be surprised if any of my
programs, going back to the 1970s, would break with long parms.


/Leonard

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to