summaryrefslogtreecommitdiff
path: root/info/digests/tex-implementors/029
diff options
context:
space:
mode:
Diffstat (limited to 'info/digests/tex-implementors/029')
-rw-r--r--info/digests/tex-implementors/029460
1 files changed, 460 insertions, 0 deletions
diff --git a/info/digests/tex-implementors/029 b/info/digests/tex-implementors/029
new file mode 100644
index 0000000000..e570480dd2
--- /dev/null
+++ b/info/digests/tex-implementors/029
@@ -0,0 +1,460 @@
+Date: 8 April 90 Message No: 029
+
+To: TeX implementors and distributors
+
+From: Barbara Beeton
+
+Subject: Additional changes, TeX 3.14, MF 2.7; ERRATA.TeX; security report
+
+
+This message contains only the most urgent changes. I am extremely
+short on time, and will be out of town from Apr 11-20 at a standards
+meeting in Kyoto. (I will probably be quite incoherent when I return;
+14-hour time shifts and I don't get along too well.)
+
+Included here are the following
+ Addenda to TeX82.BUG as of 26 March 91
+ New errata list (ERRATA.TEX) -- full list
+ Differences between TeX.WEB 3.14 as of 18 March 1991 and as of 26 Mar 1991
+ Differences between MF.WEB 2.7 as of 13 March 1991 and as of 26 Mar 1991
+
+The differences lists were run under VAX/VMS and hand-edited to provide
+the starting line number for each code block. This is the closest I can
+come to the former TOPS-20 differences lists. I was very careful to
+check the hand work, and didn't catch any errors. However, you should
+be aware that this was not entirely machine generated.
+
+I received on paper today a package of commented bug reports from Knuth.
+I have added the comments to the original file, and will send that as
+message #30. I am doing this to save time. Several people will get
+rewards from their reports; I will be in touch with them indivudually.
+Although this package arrived only today, I believe that all the bugs
+that Knuth accepted were fixed in the versions of March 26 referred to
+below.
+
+I have had another report, one that I really don't like to advertise.
+I have passed it along to Knuth, and also checked it out with another
+expert. This report dealt with a "security flaw", specifically in
+Unix implementations, but possibly able to be activated within other
+operating system environments as well. Here is the introduction to
+the report:
+
+ Date: Tue, 26 Mar 91 12:52:33 -0500
+ From: Zbigniew Fiedorowicz <zfiedor@magnus.acs.ohio-state.edu>
+ To: tug@math.ams.com
+ Cc: tech-support@math.ams.com
+ Subject: TeX security problem
+
+ Please pass this on to Prof. Knuth, or whoever maintains the
+ official TeX source code:
+
+ I am writing to inform you about a security flaw affecting Unix
+ implementations of TeX (perhaps other operating systems as well). The
+ problem is that one can easily imbed TeX commands in ordinary TeX files
+ to write arbitrary text into a user's system files, such as .login,
+ .cshrc, .profile, .logout, etc. When a file with such commands is typeset,
+ they may execute silently without the user being any the wiser. This
+ provides a mechanism for anything from harmless pranks to serious
+ vandalism. To illustrate the problem, I enclose below a "TeX virus".
+
+ To prevent this sort of thing, TeX should check commands of the form
+ \openoutn=filename
+ is not something like .login, ../.logout, etc. It would seem reasonable
+ to impose the condition that the only filenames acceptable to TeX must
+ end in the form
+ x.xxx...x
+ where x denotes an alphanumeric character.
+
+ Zbigniew Fiedorowicz
+
+The report was accompanied by a "demo virus", both a summary of the
+strategy and the code. In order to contain this as well as possible,
+I will not send out the code or strategy without a specific request,
+and then, only to people whose credentials I am sure of. I asked the
+moderator of the VIRUS-L discussion list to look at the strategy and
+determine whether it is plausible. He did so, and here is his analysis.
+
+ Date: Thu, 28 Mar 91 09:56:48 EST
+ From: Kenneth R. van Wyk <krvw@cert.sei.cmu.edu>
+
+ Ms. Beeton,
+
+ Thank you for your letter regarding the use of TeX for propagating
+ viruses. While I am only slightly familiar with TeX, I do fully
+ understand the nature of the problem. Without even looking at the
+ example code (though I would be happy to do so), I can imagine ways in
+ which it could be exploited. I see the problem as being more general
+ in scope than just viruses; indeed, a trojan horse login "program"
+ could easily be implemented which could be used to collect usernames
+ and passwords. This is along the lines of pranks that have been seen
+ in (among other places, no doubt) university computing environments
+ for years.
+
+ On the other hand, I would imagine that the people who designed and
+ implemented this feature had legitimate reasons for doing so. The
+ report that you sent to me mentioned one alternative, which was to
+ only allow certain classes of filenames. One other alternative which
+ you may wish to consider is to notify the user whenever a file is to
+ be written to in this manner and allow the user to deny access to the
+ file. A message to the extent of "File xxx.tex is attempting to write
+ to file .login. This could have serious security related
+ repurcussions. Do you wish to proceed? <y/n>"
+
+ In summary, yes I believe that the threat is real. It could certainly
+ and easily be used to cause damage. The damage could be in the form
+ of a virus, but would not be limited to viruses. It could just as
+ easily be used in an attempt to obtain another user's password or just
+ about anything else. The problem is not insurmountable. The file
+ output facility could be removed (in the extreme case) or an
+ alternative approach could be used. I personally like the idea of
+ informing the user and allowing him/her to deny the access before it
+ happens. The decision is yours to make.
+
+ Kenneth R. van Wyk
+ Moderator VIRUS-L/comp.virus
+ Technical Coordinator, Computer Emergency Response Team
+ Software Engineering Institute
+ Carnegie Mellon University
+ krvw@CERT.SEI.CMU.EDU (work)
+ ken@OLDALE.PGH.PA.US (home)
+ (412) 268-7090 (CERT 24 hour hotline)
+
+In reply to the copy of the full report that I sent to Knuth, he sent
+back to me a sheet of Unix diffs to be forwarded to Pierre MacKay
+(as TUG Unix site coordinator), which I am about to do, along with all
+the supporting correspondence. I will ask Pierre to notify the list
+when he has received it, and, if he will, to answer questions on the
+subject. That will allow me to go away with a clear conscience.
+
+
+########################################################################
+
+Addenda to TeX82.BUG as of 26 March 91
+
+-------------
+Note: When making change 376, I forgot to delete the redundant
+code in module 883, and I should also have changed the name of that
+module. These cosmetic changes (and some changes to the comments)
+were made in version 3.14, in addition to the following two changes.
+-------------
+
+393. Show unprintable characters in font id's (Wayne Sullivan, Dec 1990)
+@x module 63
+print(s);
+@y
+slow_print(s);
+@z
+@x module 262 can now be spruced up
+else begin print_esc(""); slow_print(text(p));
+@y
+else begin print_esc(text(p));
+@z
+@x and module 263 likewise
+else begin print_esc(""); slow_print(text(p));
+ end;
+@y
+else print_esc(text(p));
+@z
+
+394. Avoid range check if total_pages>65535 (Eberhard Mattes, Dec 1990)
+@x module 642
+ dvi_out(total_pages div 256); dvi_out(total_pages mod 256);@/
+@y
+ dvi_out((total_pages div 256) mod 256); dvi_out(total_pages mod 256);@/
+@z
+
+-----------
+395. The absolutely final change (to be made after my death)
+@x module 2
+@d banner=='This is TeX, Version 3.14' {printed when \TeX\ starts}
+@y
+@d banner=='This is TeX, Version $\pi$' {printed when \TeX\ starts}
+@z
+My last will and testament for TeX is that no further changes be made
+under any circumstances. Improved systems should not be called simply `TeX';
+that name, unqualified, should refer only to the program for which I have
+taken personal responsibility. -- Don Knuth
+
+* Possibly nice ideas that will not be implemented
+
+. classes of marks analogous to classes of insertions
+
+. \showcontext to show the current location without stopping for error
+
+. \show commands to be less like errors
+
+. \everyeof to insert tokens before an \input file ends
+ (strange example: \everyeof{\noexpand} will allow things
+ like \xdef\a{\input foo}!)
+
+. generalize \leftskip and \rightskip to token lists (problems with
+ displayed math then)
+
+. generalize \widowline and \clubline to go further into a paragraph
+
+. \lastbox to remove and box a charnode if one is there
+
+* Bad ideas that will not be implemented
+
+. several people want to be able to remove arbitrary elements of lists,
+ but that must never be done because some of those elements (e.g. kerns
+ for accents) depend on floating point arithmetic
+
+. if anybody wants letter spacing desperately they should put it in their own
+ private version (e.g. generalize the hpack routine) and NOT call it TeX.
+
+
+########################################################################
+
+New errata list (ERRATA.TEX) -- full list
+
+% Bugs (sigh) in Computers \& Typesetting --- the most recent errata
+
+\input manmac
+\font\sltt=cmsltt10
+\font\niness=cmss9
+\font\ninessi=cmssi9
+\proofmodefalse
+\raggedbottom
+\output{\hsize=29pc \onepageout{\unvbox255\kern-\dimen@ \vfil}}
+
+\def\today{\number\day\
+ \ifcase\month\or
+ Jan\or Feb\or Mar\or Apr\or May\or Jun\or
+ Jul\or Aug\or Sep\or Oct\or Nov\or Dec\fi
+ \ \number\year}
+
+\def\cutpar{{\parfillskip=0pt\par}}
+
+\def\rhead{Bugs in {\tensl Computers \& Typesetting as of \today}}
+\def\bugonpage#1(#2) \par{\bigbreak\tenpoint
+ \hrule width\hsize
+ \line{\lower3.5pt\vbox to13pt{}Page #1\hfil(#2)}\hrule width\hsize
+ \nobreak\medskip}
+\def\buginvol#1(#2) \par{\bigbreak\penalty-1000\tenpoint
+ \hrule width\hsize
+ \line{\lower3.5pt\vbox to13pt{}Volume #1\hfil(#2)}\hrule width\hsize
+ \nobreak\medskip}
+\def\slMF{{\manual 89:;}\-{\manual <=>:}} % slant the logo
+\def\0{\raise.7ex\hbox{$\scriptstyle\#$}}
+\newcount\nn
+\newdimen\nsize \newdimen\msize \newdimen\ninept \ninept=9pt
+\newbox\eqbox \setbox\eqbox=\hbox{\kern2pt\eightrm=\kern2pt}
+
+\tenpoint
+\noindent This is a list of all corrections made to {\sl Computers \&
+Typesetting}, Volumes A,~C, and E\null, since 1 January 1991.
+Corrections made to the softcover version of {\sl The \TeX book\/} are
+the same as corrections to Volume~A\null. Corrections to the softcover
+version of {\sl The \slMF\kern1ptbook\/} are the same as corrections
+to Volume~C\null. Some of the corrections below have already been made in
+reprintings of the books. Hundreds of changes, too many to list here,
+have been made to Volumes B~and~D because of the upgrades to \TeX\ and
+\MF\null. Readers who need up-to-date information on the \TeX\ and
+\MF\ programs should refer to the |WEB| source files until new
+printings of Volumes B~and~D are issued. \looseness=-1
+
+% volume A
+
+\bugonpage A377, the bottom 14 lines (3/26/91)
+
+\eightpoint\indent
+ASCII \<space>; the macro
+also decides whether a space token is explicit or implicit.
+\begintt
+\newif\ifspace \newif\iffunny \newif\ifexplicit
+\def\stest#1{\expandafter\s\the#1! \stest}
+\def\s{\funnyfalse \global\explicitfalse \futurelet\next\ss}
+\def\ss{\ifcat\noexpand\next\stoken \spacetrue
+ \ifx\next\stoken \let\next=\sss \else\let\next=\ssss \fi
+ \else \let\next=\sssss \fi \next}
+\long\def\sss#1 #2\stest{\def\next{#1}%
+ \ifx\next\empty \global\explicittrue \fi}
+\long\def\ssss#1#2\stest{\funnytrue {\uccode`#1=`~
+ \uppercase{\ifcat\noexpand#1}\noexpand~% active funny space
+ \else \escapechar=\if*#1`?\else`*\fi
+ \if#1\string#1\global\explicittrue\fi \fi}}
+\long\def\sssss#1\stest{\spacefalse}
+\endtt
+
+\bugonpage A444, lines 15--26 (3/26/91)
+
+\ninepoint
+\textindent{\bf14.}If the current item is an Ord atom,
+go directly to Rule~17 unless
+all of the following are true: The nucleus is a symbol; the subscript
+and superscript are both empty; the very next item in the math list is an
+atom of type Ord, Op, Bin, Rel, Open, Close, or Punct; and the nucleus of the
+next item is a symbol whose family is the same as the family in the present
+Ord atom. In such cases the present symbol is marked as a text symbol.
+If the font information shows a ligature between this symbol and the
+following one, using the specified family and the current size, then
+insert the ligature character and continue as specified by the font;
+in this process, two characters may collapse into a single Ord
+text symbol, and/or new Ord text characters may appear. If the font information
+shows a kern between the current symbol and the next, insert a kern item
+following the current atom.
+As soon as an Ord atom has been fully processed for ligatures and kerns,
+go to Rule~17.
+
+% volume B
+\hsize=35pc
+\def\\#1{\hbox{\it#1\/\kern.05em}} % italic type for identifiers
+\def\to{\mathrel{.\,.}} % double dot, used only in math mode
+
+
+% volume C
+\hsize=29pc
+\def\\#1{\hbox{\it#1\/\kern.05em}} % italic type for identifiers
+
+\bugonpage C262, line 15 (3/26/91)
+
+\ninepoint\noindent
+|string base_name, base_version; base_name="plain"; base_version="2.7";|
+
+\bugonpage C271, line 17 from the bottom (3/26/91)
+
+\ninepoint\noindent
+| currentpen_path shifted (z.t_) withpen penspeck enddef;|
+
+\bugonpage C347, Bront''e entry (1/29/91)
+
+\eightpoint\noindent
+[The accent was clobbered; her name should, of course, be Bront\"e.
+Fix the entries for D\"urer, M\"obius, and Stravinsky in the same way.]
+
+
+% Volume D
+\hsize=35pc
+\def\\#1{\hbox{\it#1\/\kern.05em}} % italic type for identifiers
+\def\to{\mathrel{.\,.}} % double dot, used only in math mode
+
+% volume E
+\hsize=29pc
+\def\dashto{\mathrel{\hbox{-\kern-.05em}\mkern3.9mu\hbox{-\kern-.05em}}}
+
+
+\bye
+
+
+########################################################################
+
+Differences between TeX.WEB 3.14 as of 18 March 1991 and as of 26 Mar 1991
+
+************
+File SYSA:[TEX.TEX]TEX-314.WEB;1 (42)
+% Version 3.14 was a cosmetic change for new Volume B (February 1991).
+
+% A reward of $327.68 will be paid to the first finder of any remaining bug,
+******
+File PRG:[TEX.NEW]TEX-314.NEW;1 (42)
+% Version 3.14 fixed unprintable font names and corrected typos (March 1991).
+
+% A reward of $327.68 will be paid to the first finder of any remaining bug,
+
+************
+************
+File SYSA:[TEX.TEX]TEX-314.WEB;1 (1571)
+print(s);
+end;
+
+@ An array of digits in the range |0..15| is printed by |print_the_digs|.
+******
+File PRG:[TEX.NEW]TEX-314.NEW;1 (1571)
+slow_print(s);
+end;
+
+@ An array of digits in the range |0..15| is printed by |print_the_digs|.
+************
+************
+File SYSA:[TEX.TEX]TEX-314.WEB;1 (5576)
+else begin print_esc(""); slow_print(text(p));
+ print_char(" ");
+******
+File PRG:[TEX.NEW]TEX-314.NEW;1 (5576)
+else begin print_esc(text(p));
+ print_char(" ");
+************
+************
+File SYSA:[TEX.TEX]TEX-314.WEB;1 (5591)
+else begin print_esc(""); slow_print(text(p));
+ end;
+end;
+******
+File PRG:[TEX.NEW]TEX-314.NEW;1 (5591)
+else print_esc(text(p));
+end;
+************
+************
+File SYSA:[TEX.TEX]TEX-314.WEB;1 (12693)
+
+An integer variable |k| will be declared for use by this routine.
+******
+File PRG:[TEX.NEW]TEX-314.NEW;1 (12692)
+If |total_pages>=65536|, the \.{DVI} file will lie.
+
+An integer variable |k| will be declared for use by this routine.
+************
+************
+File SYSA:[TEX.TEX]TEX-314.WEB;1 (12711)
+ dvi_out(total_pages div 256); dvi_out(total_pages mod 256);@/
+ @<Output the font definitions for all fonts that were used@>;
+******
+File PRG:[TEX.NEW]TEX-314.NEW;1 (12711)
+ dvi_out((total_pages div 256) mod 256); dvi_out(total_pages mod 256);@/
+ @<Output the font definitions for all fonts that were used@>;
+************
+
+Number of difference sections found: 6
+Number of difference records found: 7
+
+DIFFERENCES /IGNORE=()/MERGED=1/OUTPUT=PRG:[TEX.NEW]TEX-314.DIF;1-
+ SYSA:[TEX.TEX]TEX-314.WEB;1-
+ PRG:[TEX.NEW]TEX-314.NEW;1
+
+
+########################################################################
+
+Differences between MF.WEB 2.7 as of 13 March 1991 and as of 26 Mar 1991
+
+************
+File SYSA:[TEX.MF]MF-27.WEB;2 (21835)
+\\{xxx} commands might appear anywhere in \.{GF} files generated by other
+processors. It is recommended that |x| be a string having the form of a
+******
+File PRG:[TEX.NEW]MF.WEB;1 (21835)
+\\{xxx} commands might appear within characters,
+in \.{GF} files generated by other
+processors. It is recommended that |x| be a string having the form of a
+************
+
+Number of difference sections found: 1
+Number of difference records found: 2
+
+DIFFERENCES /IGNORE=()/MERGED=1/OUTPUT=PRG:[TEX.NEW]MF-27.DIF;1-
+ SYSA:[TEX.MF]MF-27.WEB;2-
+ PRG:[TEX.NEW]MF.WEB;1
+
+
+########################################################################
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Character code reference
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Upper case letters: ABCDEFGHIJKLMNOPQRSTUVWXYZ
+% Lower case letters: abcdefghijklmnopqrstuvwxyz
+% Digits: 0123456789
+% Square, curly, angle braces, parentheses: [] {} <> ()
+% Backslash, slash, vertical bar: \ / |
+% Punctuation: . ? ! , : ;
+% Underscore, hyphen, equals sign: _ - =
+% Quotes--right left double: ' ` "
+%"at", "number" "dollar", "percent", "and": @ # $ % &
+% "hat", "star", "plus", "tilde": ^ * + ~
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+[ end of message 029 ]
+-------
+