Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 16 Feb 2014 02:24:38 +0000 (UTC)
From:      Warren Block <wblock@FreeBSD.org>
To:        doc-committers@freebsd.org, svn-doc-all@freebsd.org, svn-doc-head@freebsd.org
Subject:   svn commit: r43953 - head/en_US.ISO8859-1/books/porters-handbook/security
Message-ID:  <201402160224.s1G2Ocar047740@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: wblock
Date: Sun Feb 16 02:24:38 2014
New Revision: 43953
URL: http://svnweb.freebsd.org/changeset/doc/43953

Log:
  Whitespace-only fixes, translators please ignore.

Modified:
  head/en_US.ISO8859-1/books/porters-handbook/security/chapter.xml

Modified: head/en_US.ISO8859-1/books/porters-handbook/security/chapter.xml
==============================================================================
--- head/en_US.ISO8859-1/books/porters-handbook/security/chapter.xml	Sun Feb 16 02:10:29 2014	(r43952)
+++ head/en_US.ISO8859-1/books/porters-handbook/security/chapter.xml	Sun Feb 16 02:24:38 2014	(r43953)
@@ -4,160 +4,159 @@
 
      $FreeBSD$
 -->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="security">
+<chapter xmlns="http://docbook.org/ns/docbook"
+  xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
+  xml:id="security">
+
+  <title>Security</title>
+
+  <sect1 xml:id="security-intro">
+    <title>Why Security is So Important</title>
+
+    <para>Bugs are occasionally introduced to the software.  Arguably,
+      the most dangerous of them are those opening security
+      vulnerabilities.  From the technical viewpoint, such
+      vulnerabilities are to be closed by exterminating the bugs that
+      caused them.  However, the policies for handling mere bugs and
+      security vulnerabilities are very different.</para>
+
+    <para>A typical small bug affects only those users who have
+      enabled some combination of options triggering the bug.  The
+      developer will eventually release a patch followed by a new
+      version of the software, free of the bug, but the majority of
+      users will not take the trouble of upgrading immediately because
+      the bug has never vexed them.  A critical bug that may cause
+      data loss represents a graver issue.  Nevertheless, prudent
+      users know that a lot of possible accidents, besides software
+      bugs, are likely to lead to data loss, and so they make backups
+      of important data; in addition, a critical bug will be
+      discovered really soon.</para>
+
+    <para>A security vulnerability is all different.  First, it may
+      remain unnoticed for years because often it does not cause
+      software malfunction.  Second, a malicious party can use it to
+      gain unauthorized access to a vulnerable system, to destroy or
+      alter sensitive data; and in the worst case the user will not
+      even notice the harm caused.  Third, exposing a vulnerable
+      system often assists attackers to break into other systems that
+      could not be compromised otherwise.  Therefore closing a
+      vulnerability alone is not enough: the audience should be
+      notified of it in most clear and comprehensive manner, which
+      will allow to evaluate the danger and take appropriate
+      actions.</para>
+  </sect1>
+
+  <sect1 xml:id="security-fix">
+    <title>Fixing Security Vulnerabilities</title>
+
+    <para>While on the subject of ports and packages, a security
+      vulnerability may initially appear in the original distribution
+      or in the port files.  In the former case, the original software
+      developer is likely to release a patch or a new version
+      instantly, and you will only need to update the port promptly
+      with respect to the author's fix.  If the fix is delayed for
+      some reason, you should either
+      <link linkend="dads-noinstall">mark the port as
+      <varname>FORBIDDEN</varname></link> or introduce a patch file of
+      your own to the port.  In the case of a vulnerable port, just
+      fix the port as soon as possible.  In either case,
+      <link linkend="port-upgrading">the standard procedure for
+      submitting your change</link> should be followed unless you have
+      rights to commit it directly to the ports tree.</para>
+
+    <important>
+      <para>Being a ports committer is not enough to commit to an
+	arbitrary port.  Remember that ports usually have maintainers,
+	whom you should respect.</para>
+    </important>
+
+    <para>Please make sure that the port's revision is bumped as soon
+      as the vulnerability has been closed. That is how the users who
+      upgrade installed packages on a regular basis will see they need
+      to run an update. Besides, a new package will be built and
+      distributed over FTP and WWW mirrors, replacing the vulnerable
+      one. <varname>PORTREVISION</varname> should be bumped unless
+      <varname>PORTVERSION</varname> has changed in the course of
+      correcting the vulnerability.  That is you should bump
+      <varname>PORTREVISION</varname> if you have added a patch file
+      to the port, but you should not if you have updated the port to
+      the latest software version and thus already touched
+      <varname>PORTVERSION</varname>.  Please refer to the
+      <link linkend="makefile-naming-revepoch">corresponding
+	section</link> for more information.</para>
+  </sect1>
+
+  <sect1 xml:id="security-notify">
+    <title>Keeping the Community Informed</title>
+
+    <sect2 xml:id="security-notify-vuxml-db">
+      <title>The VuXML Database</title>
+
+      <para>A very important and urgent step to take as early after a
+	security vulnerability is discovered as possible is to notify
+	the community of port users about the jeopardy.  Such
+	notification serves two purposes.  First, should the danger be
+	really severe it will be wise to apply an instant workaround.
+	E.g., stop the affected network service or even deinstall the
+	port completely until the vulnerability is closed.  Second, a
+	lot of users tend to upgrade installed packages only
+	occasionally.  They will know from the notification that they
+	<emphasis>must</emphasis> update the package without delay as
+	soon as a corrected version is available.</para>
+
+      <para>Given the huge number of ports in the tree, a security
+	advisory cannot be issued on each incident without creating a
+	flood and losing the attention of the audience when it comes
+	to really serious matters.  Therefore security vulnerabilities
+	found in ports are recorded in
+	<link xlink:href="http://vuxml.freebsd.org/">the &os;
+	  VuXML database</link>.  The Security Officer Team members
+	also monitor it for issues requiring their
+	intervention.</para>
+
+      <para>If you have committer rights you can update the VuXML
+	database by yourself.  So you will both help the Security
+	Officer Team and deliver the crucial information to the
+	community earlier.  However, if you are not a committer, or
+	you believe you have found an exceptionally severe
+	vulnerability please do not hesitate to contact the Security
+	Officer Team directly as described on the
+	<link xlink:href="http://www.freebsd.org/security/#how">&os;
+	  Security Information</link> page.</para>
+
+      <para>The VuXML database is an <acronym>XML</acronym> document.
+	Its source file <filename>vuln.xml</filename> is kept right
+	inside the port <package role="port">security/vuxml</package>.
+	Therefore the file's full pathname will be
+	<filename>PORTSDIR/security/vuxml/vuln.xml</filename>.  Each
+	time you discover a security vulnerability in a port, please
+	add an entry for it to that file.  Until you are familiar with
+	VuXML, the best thing you can do is to find an existing entry
+	fitting your case, then copy it and use it as a
+	template.</para>
+    </sect2>
+
+    <sect2 xml:id="security-notify-vuxml-intro">
+      <title>A Short Introduction to VuXML</title>
+
+      <para>The full-blown <acronym>XML</acronym> format is complex,
+	and far beyond the scope of this book.  However, to gain basic
+	insight on the structure of a VuXML entry you need only the
+	notion of tags.  XML tag names are enclosed in angle brackets.
+	Each opening &lt;tag&gt; must have a matching closing
+	&lt;/tag&gt;.  Tags may be nested.  If nesting, the inner tags
+	must be closed before the outer ones.  There is a hierarchy of
+	tags, i.e., more complex rules of nesting them.  This is
+	similar to HTML.  The major difference is that XML is
+	e<emphasis>X</emphasis>tensible, i.e., based on defining
+	custom tags.  Due to its intrinsic structure XML puts
+	otherwise amorphous data into shape. VuXML is particularly
+	tailored to mark up descriptions of security
+	vulnerabilities.</para>
 
-    <title>Security</title>
+      <para>Now consider a realistic VuXML entry:</para>
 
-    <sect1 xml:id="security-intro">
-      <title>Why Security is So Important</title>
-
-      <para>Bugs are occasionally introduced to the software.
-	Arguably, the most dangerous of them are those opening
-	security vulnerabilities.  From the technical viewpoint, such
-	vulnerabilities are to be closed by exterminating the bugs
-	that caused them.  However, the policies for handling mere
-	bugs and security vulnerabilities are very different.</para>
-
-      <para>A typical small bug affects only those users who have
-	enabled some combination of options triggering the bug.  The
-	developer will eventually release a patch followed by a new
-	version of the software, free of the bug, but the majority of
-	users will not take the trouble of upgrading immediately
-	because the bug has never vexed them.  A critical bug that may
-	cause data loss represents a graver issue.  Nevertheless,
-	prudent users know that a lot of possible accidents, besides
-	software bugs, are likely to lead to data loss, and so they
-	make backups of important data; in addition, a critical bug
-	will be discovered really soon.</para>
-
-      <para>A security vulnerability is all different.  First, it may
-	remain unnoticed for years because often it does not cause
-	software malfunction.  Second, a malicious party can use it to
-	gain unauthorized access to a vulnerable system, to destroy or
-	alter sensitive data; and in the worst case the user will not
-	even notice the harm caused.  Third, exposing a vulnerable
-	system often assists attackers to break into other systems
-	that could not be compromised otherwise.  Therefore closing a
-	vulnerability alone is not enough: the audience should be
-	notified of it in most clear and comprehensive manner, which
-	will allow to evaluate the danger and take appropriate
-	actions.</para>
-    </sect1>
-
-    <sect1 xml:id="security-fix">
-      <title>Fixing Security Vulnerabilities</title>
-
-      <para>While on the subject of ports and packages, a security
-	vulnerability may initially appear in the original
-	distribution or in the port files.  In the former case, the
-	original software developer is likely to release a patch or a
-	new version instantly, and you will only need to update the
-	port promptly with respect to the author's fix.  If the fix is
-	delayed for some reason, you should either
-	<link linkend="dads-noinstall">mark the port as
-	<varname>FORBIDDEN</varname></link> or introduce a patch file
-	of your own to the port.  In the case of a vulnerable port,
-	just fix the port as soon as possible.  In either case,
-	<link linkend="port-upgrading">the standard procedure for
-	submitting your change</link> should be followed unless you
-	have rights to commit it directly to the ports tree.</para>
-
-      <important>
-	<para>Being a ports committer is not enough to commit to
-	  an arbitrary port.  Remember that ports usually have
-	  maintainers, whom you should respect.</para>
-      </important>
-
-      <para>Please make sure that the port's revision is bumped
-	as soon as the vulnerability has been closed.
-	That is how the users who upgrade installed packages
-	on a regular basis will see they need to run an update.
-	Besides, a new package will be built and distributed
-	over FTP and WWW mirrors, replacing the vulnerable one.
-	<varname>PORTREVISION</varname> should be bumped unless
-	<varname>PORTVERSION</varname> has changed in the course
-	of correcting the vulnerability.  That is you should
-	bump <varname>PORTREVISION</varname> if you have added a
-	patch file to the port, but you should not if you have updated
-	the port to the latest software version and thus already
-	touched <varname>PORTVERSION</varname>.  Please refer to the
-	<link linkend="makefile-naming-revepoch">corresponding
-	  section</link> for more information.</para>
-    </sect1>
-
-    <sect1 xml:id="security-notify">
-      <title>Keeping the Community Informed</title>
-
-      <sect2 xml:id="security-notify-vuxml-db">
-	<title>The VuXML Database</title>
-
-	<para>A very important and urgent step to take as early after
-	  a security vulnerability is discovered as possible is to
-	  notify the community of port users about the jeopardy.  Such
-	  notification serves two purposes.  First, should the danger
-	  be really severe it will be wise to apply an instant
-	  workaround.  E.g., stop the affected network service or even
-	  deinstall the port completely until the vulnerability is
-	  closed.  Second, a lot of users tend to upgrade installed
-	  packages only occasionally.  They will know from the
-	  notification that they <emphasis>must</emphasis> update the
-	  package without delay as soon as a corrected version is
-	  available.</para>
-
-	<para>Given the huge number of ports in the tree, a security
-	  advisory cannot be issued on each incident without creating
-	  a flood and losing the attention of the audience when it
-	  comes to really serious matters.  Therefore security
-	  vulnerabilities found in ports are recorded in
-	  <link xlink:href="http://vuxml.freebsd.org/">the &os;
-	    VuXML database</link>.  The Security Officer Team members
-	  also monitor it for issues requiring their
-	  intervention.</para>
-
-	<para>If you have committer rights you can update the VuXML
-	  database by yourself.  So you will both help the Security
-	  Officer Team and deliver the crucial information to the
-	  community earlier.  However, if you are not a committer, or
-	  you believe you have found an exceptionally severe
-	  vulnerability please do not hesitate to contact the Security
-	  Officer Team directly as described on the <link
-	    xlink:href="http://www.freebsd.org/security/#how">&os;
-	    Security Information</link> page.</para>
-
-	<para>The VuXML database is an <acronym>XML</acronym>
-	  document.  Its source file <filename>vuln.xml</filename> is
-	  kept right inside the port
-	  <package role="port">security/vuxml</package>.  Therefore
-	  the file's full pathname will be
-	  <filename>PORTSDIR/security/vuxml/vuln.xml</filename>.  Each
-	  time you discover a security vulnerability in a port, please
-	  add an entry for it to that file.  Until you are familiar
-	  with VuXML, the best thing you can do is to find an existing
-	  entry fitting your case, then copy it and use it as a
-	  template.</para>
-      </sect2>
-
-      <sect2 xml:id="security-notify-vuxml-intro">
-	<title>A Short Introduction to VuXML</title>
-
-	<para>The full-blown <acronym>XML</acronym> format is complex,
-	  and far beyond the scope of this book.  However, to gain
-	  basic insight on the structure of a VuXML entry you need
-	  only the notion of tags.  XML tag names are enclosed in
-	  angle brackets.  Each opening &lt;tag&gt; must have a
-	  matching closing &lt;/tag&gt;.  Tags may be nested.  If
-	  nesting, the inner tags must be closed before the outer
-	  ones.  There is a hierarchy of tags, i.e., more complex
-	  rules of nesting them.  This is similar to HTML.  The major
-	  difference is that XML is e<emphasis>X</emphasis>tensible,
-	  i.e., based on defining custom tags.  Due to its intrinsic
-	  structure XML puts otherwise amorphous data into shape.
-	  VuXML is particularly tailored to mark up descriptions of
-	  security vulnerabilities.</para>
-
-	<para>Now consider a realistic VuXML entry:</para>
-
-	<programlisting>&lt;vuln vid="f4bc80f4-da62-11d8-90ea-0004ac98a7b9"&gt; <co xml:id="co-vx-vid"/>
+      <programlisting>&lt;vuln vid="f4bc80f4-da62-11d8-90ea-0004ac98a7b9"&gt; <co xml:id="co-vx-vid"/>
   &lt;topic&gt;Several vulnerabilities found in Foo&lt;/topic&gt; <co xml:id="co-vx-top"/>
   &lt;affects&gt;
     &lt;package&gt;
@@ -206,314 +205,300 @@
   &lt;/dates&gt;
 &lt;/vuln&gt;</programlisting>
 
-	<para>The tag names are supposed to be self-explanatory so we
-	  shall take a closer look only at fields you will need to
-	  fill in by yourself:</para>
-
-	<calloutlist>
-	  <callout arearefs="co-vx-vid">
-	    <para>This is the top-level tag of a VuXML entry.  It has
-	      a mandatory attribute, <literal>vid</literal>,
-	      specifying a universally unique identifier (UUID) for
-	      this entry (in quotes).  You should generate a UUID for
-	      each new VuXML entry (and do not forget to substitute it
-	      for the template UUID unless you are writing the entry
-	      from scratch).  You can use &man.uuidgen.1; to generate
-	      a VuXML UUID.</para>
-	  </callout>
-
-	  <callout arearefs="co-vx-top">
-	    <para>This is a one-line description of the issue
-	      found.</para>
-	  </callout>
-
-	  <callout arearefs="co-vx-nam">
-	    <para>The names of packages affected are listed there.
-	      Multiple names can be given since several packages may
-	      be based on a single master port or software product.
-	      This may include stable and development branches,
-	      localized versions, and slave ports featuring different
-	      choices of important build-time configuration
-	      options.</para>
-
-	    <important>
-	      <para>It is your responsibility to find all such related
-		packages when writing a VuXML entry.  Keep in mind
-		that <literal>make search name=foo</literal> is your
-		friend.  The primary points to look for are as
-		follows:</para>
-
-	      <itemizedlist>
-		<listitem>
-		  <para>the <filename>foo-devel</filename> variant
-		    for a <filename>foo</filename> port;</para>
-		</listitem>
-
-		<listitem>
-		  <para>other variants with a suffix like
-		    <literal>-a4</literal> (for print-related
-		    packages), <literal>-without-gui</literal> (for
-		    packages with X support disabled), or
-		    similar;</para>
-		</listitem>
-
-		<listitem>
-		  <para><literal>jp-</literal>,
-		    <literal>ru-</literal>, <literal>zh-</literal>,
-		    and other possible localized variants in the
-		    corresponding national categories of the ports
-		    collection.</para>
-		</listitem>
-	      </itemizedlist>
-	    </important>
-	  </callout>
-
-	  <callout arearefs="co-vx-rng">
-	    <para>Affected versions of the package(s) are specified
-	      there as one or more ranges using a combination of
-	      <literal>&lt;lt&gt;</literal>,
-	      <literal>&lt;le&gt;</literal>,
-	      <literal>&lt;eq&gt;</literal>,
-	      <literal>&lt;ge&gt;</literal>, and
-	      <literal>&lt;gt&gt;</literal> elements.  The version
-	      ranges given should not overlap.</para>
-
-	    <para>In a range specification, <literal>*</literal>
-	      (asterisk) denotes the smallest version number.  In
-	      particular, <literal>2.*</literal> is less than
-	      <literal>2.a</literal>.  Therefore an asterisk may be
-	      used for a range to match all possible
-	      <literal>alpha</literal>, <literal>beta</literal>, and
-	      <literal>RC</literal> versions.  For instance,
-	      <literal>&lt;ge&gt;2.*&lt;/ge&gt;&lt;lt&gt;3.*&lt;/lt&gt;</literal>
-	      will selectively match every <literal>2.x</literal>
-	      version while
-	      <literal>&lt;ge&gt;2.0&lt;/ge&gt;&lt;lt&gt;3.0&lt;/lt&gt;</literal>
-	      will not since the latter misses
-	      <literal>2.r3</literal> and matches
-	      <literal>3.b</literal>.</para>
-
-	    <para>The above example specifies that affected are
-	      versions from <literal>1.6</literal> to
-	      <literal>1.9</literal> inclusive, versions
-	      <literal>2.x</literal> before <literal>2.4_1</literal>,
-	      and version <literal>3.0b1</literal>.</para>
-	  </callout>
-
-	  <callout arearefs="co-vx-nm2">
-	    <para>Several related package groups (essentially, ports)
-	      can be listed in the <literal>&lt;affected&gt;</literal>
-	      section.  This can be used if several software products
-	      (say FooBar, FreeBar and OpenBar) grow from the same
-	      code base and still share its bugs and vulnerabilities.
-	      Note the difference from listing multiple names within a
-	      single &lt;package&gt; section.</para>
-	  </callout>
-
-	  <callout arearefs="co-vx-epo">
-	    <para>The version ranges should allow for
-	      <varname>PORTEPOCH</varname> and
-	      <varname>PORTREVISION</varname> if applicable.  Please
-	      remember that according to the collation rules, a
-	      version with a non-zero <varname>PORTEPOCH</varname> is
-	      greater than any version without
-	      <varname>PORTEPOCH</varname>, e.g.,
-	      <literal>3.0,1</literal> is greater than
-	      <literal>3.1</literal> or even than
-	      <literal>8.9</literal>.</para>
-	  </callout>
-
-	  <callout arearefs="co-vx-bdy">
-	    <para>This is a summary of the issue.  XHTML is used in
-	      this field.  At least enclosing
-	      <literal>&lt;p&gt;</literal> and
-	      <literal>&lt;/p&gt;</literal> should appear.  More
-	      complex mark-up may be used, but only for the sake of
-	      accuracy and clarity: No eye candy please.</para>
-	  </callout>
-
-	  <callout arearefs="co-vx-ref">
-	    <para>This section contains references to relevant
-	      documents.  As many references as apply are
-	      encouraged.</para>
-	  </callout>
-
-	  <callout arearefs="co-vx-fsa">
-	    <para>This is a <link
-		xlink:href="http://www.freebsd.org/security/#adv">&os;
-		security advisory</link>.</para>
-	  </callout>
-
-	  <callout arearefs="co-vx-fpr">
-	    <para>This is a <link
-		xlink:href="http://www.freebsd.org/support.html#gnats">&os;
-		problem report</link>.</para>
-	  </callout>
-
-	  <callout arearefs="co-vx-cve">
-	    <para>This is a
-	      <link xlink:href="http://www.cve.mitre.org/">MITRE
-		CVE</link> identifier.</para>
-	  </callout>
-
-	  <callout arearefs="co-vx-bid">
-	    <para>This is a <link
-		xlink:href="http://www.securityfocus.com/bid">SecurityFocus
-		Bug ID</link>.</para>
-	  </callout>
-
-	  <callout arearefs="co-vx-cts">
-	    <para>This is a
-	      <link xlink:href="http://www.cert.org/">US-CERT</link>;
-	      security advisory.</para>
-	  </callout>
-
-	  <callout arearefs="co-vx-ctv">
-	    <para>This is a
-	      <link xlink:href="http://www.cert.org/">US-CERT</link>;
-	      vulnerability note.</para>
-	  </callout>
-
-	  <callout arearefs="co-vx-ucs">
-	    <para>This is a
-	      <link xlink:href="http://www.cert.org/">US-CERT</link>;
-	      Cyber Security Alert.</para>
-	  </callout>
-
-	  <callout arearefs="co-vx-uct">
-	    <para>This is a
-	      <link xlink:href="http://www.cert.org/">US-CERT</link>;
-	      Technical Cyber Security Alert.</para>
-	  </callout>
-
-	  <callout arearefs="co-vx-mls">
-	    <para>This is a URL to an archived posting in a mailing
-	      list.  The attribute <literal>msgid</literal> is
-	      optional and may specify the message ID of the
-	      posting.</para>
-	  </callout>
-
-	  <callout arearefs="co-vx-url">
-	    <para>This is a generic URL.  It should be used only if
-	      none of the other reference categories apply.</para>
-	  </callout>
-
-	  <callout arearefs="co-vx-dsc">
-	    <para>This is the date when the issue was disclosed
-	      (<replaceable>YYYY-MM-DD</replaceable>).</para>
-	  </callout>
-
-	  <callout arearefs="co-vx-ent">
-	    <para>This is the date when the entry was added
-	      (<replaceable>YYYY-MM-DD</replaceable>).</para>
-	  </callout>
-
-	  <callout arearefs="co-vx-mod">
-	    <para>This is the date when any information in the entry
-	      was last modified
-	      (<replaceable>YYYY-MM-DD</replaceable>).  New entries
-	      must not include this field.  It should be added upon
-	      editing an existing entry.</para>
-	  </callout>
-	</calloutlist>
-      </sect2>
-
-      <sect2 xml:id="security-notify-vuxml-testing">
-	<title>Testing Your Changes to the VuXML Database</title>
-
-	<para>Assume you just wrote or filled in an entry for a
-	  vulnerability in the package <literal>clamav</literal> that
-	  has been fixed in version <literal>0.65_7</literal>.</para>
-
-	<para>As a prerequisite, you need to
-	  <emphasis>install</emphasis> fresh versions of the ports
-	  <package role="port">ports-mgmt/portaudit</package>,
-	  <package role="port">ports-mgmt/portaudit-db</package>,
-	  and
-	  <package role="port">security/vuxml</package>.</para>
-
-	<note>
-	  <para>To run <command>packaudit</command> you must have
-	    permission to write to its
-	    <filename>DATABASEDIR</filename>,
-	    typically <filename>/var/db/portaudit</filename>.</para>
-
-	  <para>To use a different directory set the
-	    <filename>DATABASEDIR</filename>
-	    environment variable to a different location.</para>
-
-	  <para>If you are working in a directory other than
-	    <filename>${PORTSDIR}/security/vuxml</filename> set the
-	    <filename>VUXMLDIR</filename>
-	    environment variable to the directory where
-	    <filename>vuln.xml</filename> is located.</para>
-	</note>
-
-	<para>First, check whether there already is an entry for this
-	  vulnerability.  If there were such an entry, it would match
-	  the previous version of the package,
-	  <literal>0.65_6</literal>:</para>
+      <para>The tag names are supposed to be self-explanatory so we
+	shall take a closer look only at fields you will need to fill
+	in by yourself:</para>
+
+      <calloutlist>
+	<callout arearefs="co-vx-vid">
+	  <para>This is the top-level tag of a VuXML entry.  It has a
+	    mandatory attribute, <literal>vid</literal>, specifying a
+	    universally unique identifier (UUID) for this entry (in
+	    quotes).  You should generate a UUID for each new VuXML
+	    entry (and do not forget to substitute it for the template
+	    UUID unless you are writing the entry from scratch).  You
+	    can use &man.uuidgen.1; to generate a VuXML UUID.</para>
+	</callout>
+
+	<callout arearefs="co-vx-top">
+	  <para>This is a one-line description of the issue
+	    found.</para>
+	</callout>
+
+	<callout arearefs="co-vx-nam">
+	  <para>The names of packages affected are listed there.
+	    Multiple names can be given since several packages may be
+	    based on a single master port or software product.  This
+	    may include stable and development branches, localized
+	    versions, and slave ports featuring different choices of
+	    important build-time configuration options.</para>
+
+	  <important>
+	    <para>It is your responsibility to find all such related
+	      packages when writing a VuXML entry.  Keep in mind that
+	      <literal>make search name=foo</literal> is your friend.
+	      The primary points to look for are as follows:</para>
+
+	    <itemizedlist>
+	      <listitem>
+		<para>the <filename>foo-devel</filename> variant for a
+		  <filename>foo</filename> port;</para>
+	      </listitem>
+
+	      <listitem>
+		<para>other variants with a suffix like
+		  <literal>-a4</literal> (for print-related packages),
+		  <literal>-without-gui</literal> (for packages with X
+		  support disabled), or similar;</para>
+	      </listitem>
+
+	      <listitem>
+		<para><literal>jp-</literal>, <literal>ru-</literal>,
+		  <literal>zh-</literal>, and other possible localized
+		  variants in the corresponding national categories of
+		  the ports collection.</para>
+	      </listitem>
+	    </itemizedlist>
+	  </important>
+	</callout>
+
+	<callout arearefs="co-vx-rng">
+	  <para>Affected versions of the package(s) are specified
+	    there as one or more ranges using a combination of
+	    <literal>&lt;lt&gt;</literal>,
+	    <literal>&lt;le&gt;</literal>,
+	    <literal>&lt;eq&gt;</literal>,
+	    <literal>&lt;ge&gt;</literal>, and
+	    <literal>&lt;gt&gt;</literal> elements.  The version
+	    ranges given should not overlap.</para>
+
+	  <para>In a range specification, <literal>*</literal>
+	    (asterisk) denotes the smallest version number.  In
+	    particular, <literal>2.*</literal> is less than
+	    <literal>2.a</literal>.  Therefore an asterisk may be used
+	    for a range to match all possible
+	    <literal>alpha</literal>, <literal>beta</literal>, and
+	    <literal>RC</literal> versions.  For instance,
+	    <literal>&lt;ge&gt;2.*&lt;/ge&gt;&lt;lt&gt;3.*&lt;/lt&gt;</literal>
+	    will selectively match every <literal>2.x</literal>
+	    version while
+	    <literal>&lt;ge&gt;2.0&lt;/ge&gt;&lt;lt&gt;3.0&lt;/lt&gt;</literal>
+	    will not since the latter misses <literal>2.r3</literal>
+	    and matches <literal>3.b</literal>.</para>
+
+	  <para>The above example specifies that affected are versions
+	    from <literal>1.6</literal> to <literal>1.9</literal>
+	    inclusive, versions <literal>2.x</literal> before
+	    <literal>2.4_1</literal>, and version
+	    <literal>3.0b1</literal>.</para>
+	</callout>
+
+	<callout arearefs="co-vx-nm2">
+	  <para>Several related package groups (essentially, ports)
+	    can be listed in the <literal>&lt;affected&gt;</literal>
+	    section.  This can be used if several software products
+	    (say FooBar, FreeBar and OpenBar) grow from the same code
+	    base and still share its bugs and vulnerabilities.  Note
+	    the difference from listing multiple names within a single
+	    &lt;package&gt; section.</para>
+	</callout>
+
+	<callout arearefs="co-vx-epo">
+	  <para>The version ranges should allow for
+	    <varname>PORTEPOCH</varname> and
+	    <varname>PORTREVISION</varname> if applicable.  Please
+	    remember that according to the collation rules, a version
+	    with a non-zero <varname>PORTEPOCH</varname> is greater
+	    than any version without <varname>PORTEPOCH</varname>,
+	    e.g., <literal>3.0,1</literal> is greater than
+	    <literal>3.1</literal> or even than
+	    <literal>8.9</literal>.</para>
+	</callout>
+
+	<callout arearefs="co-vx-bdy">
+	  <para>This is a summary of the issue.  XHTML is used in this
+	    field.  At least enclosing <literal>&lt;p&gt;</literal>
+	    and <literal>&lt;/p&gt;</literal> should appear.  More
+	    complex mark-up may be used, but only for the sake of
+	    accuracy and clarity: No eye candy please.</para>
+	</callout>
+
+	<callout arearefs="co-vx-ref">
+	  <para>This section contains references to relevant
+	    documents.  As many references as apply are
+	    encouraged.</para>
+	</callout>
+
+	<callout arearefs="co-vx-fsa">
+	  <para>This is a <link
+	      xlink:href="http://www.freebsd.org/security/#adv">&os;
+	      security advisory</link>.</para>
+	</callout>
+
+	<callout arearefs="co-vx-fpr">
+	  <para>This is a <link
+	      xlink:href="http://www.freebsd.org/support.html#gnats">&os;
+	      problem report</link>.</para>
+	</callout>
+
+	<callout arearefs="co-vx-cve">
+	  <para>This is a
+	    <link xlink:href="http://www.cve.mitre.org/">MITRE
+	      CVE</link> identifier.</para>
+	</callout>
+
+	<callout arearefs="co-vx-bid">
+	  <para>This is a <link
+	      xlink:href="http://www.securityfocus.com/bid">SecurityFocus
+	      Bug ID</link>.</para>
+	</callout>
+
+	<callout arearefs="co-vx-cts">
+	  <para>This is a
+	    <link xlink:href="http://www.cert.org/">US-CERT</link>;
+	    security advisory.</para>
+	</callout>
+
+	<callout arearefs="co-vx-ctv">
+	  <para>This is a
+	    <link xlink:href="http://www.cert.org/">US-CERT</link>;
+	    vulnerability note.</para>
+	</callout>
+
+	<callout arearefs="co-vx-ucs">
+	  <para>This is a
+	    <link xlink:href="http://www.cert.org/">US-CERT</link>;
+	    Cyber Security Alert.</para>
+	</callout>
+
+	<callout arearefs="co-vx-uct">
+	  <para>This is a
+	    <link xlink:href="http://www.cert.org/">US-CERT</link>;
+	    Technical Cyber Security Alert.</para>
+	</callout>
+
+	<callout arearefs="co-vx-mls">
+	  <para>This is a URL to an archived posting in a mailing
+	    list.  The attribute <literal>msgid</literal> is optional
+	    and may specify the message ID of the posting.</para>
+	</callout>
+
+	<callout arearefs="co-vx-url">
+	  <para>This is a generic URL.  It should be used only if none
+	    of the other reference categories apply.</para>
+	</callout>
+
+	<callout arearefs="co-vx-dsc">
+	  <para>This is the date when the issue was disclosed
+	    (<replaceable>YYYY-MM-DD</replaceable>).</para>
+	</callout>
+
+	<callout arearefs="co-vx-ent">
+	  <para>This is the date when the entry was added
+	    (<replaceable>YYYY-MM-DD</replaceable>).</para>
+	</callout>
+
+	<callout arearefs="co-vx-mod">
+	  <para>This is the date when any information in the entry was
+	    last modified (<replaceable>YYYY-MM-DD</replaceable>).
+	    New entries must not include this field.  It should be
+	    added upon editing an existing entry.</para>
+	</callout>
+      </calloutlist>
+    </sect2>
+
+    <sect2 xml:id="security-notify-vuxml-testing">
+      <title>Testing Your Changes to the VuXML Database</title>
+
+      <para>Assume you just wrote or filled in an entry for a
+	vulnerability in the package <literal>clamav</literal> that
+	has been fixed in version <literal>0.65_7</literal>.</para>
+
+      <para>As a prerequisite, you need to
+	<emphasis>install</emphasis> fresh versions of the ports
+	<package role="port">ports-mgmt/portaudit</package>,
+	<package role="port">ports-mgmt/portaudit-db</package>, and
+	<package role="port">security/vuxml</package>.</para>
+
+      <note>
+	<para>To run <command>packaudit</command> you must have
+	  permission to write to its <filename>DATABASEDIR</filename>,
+	  typically <filename>/var/db/portaudit</filename>.</para>
+
+	<para>To use a different directory set the
+	  <filename>DATABASEDIR</filename> environment variable to a
+	  different location.</para>
+
+	<para>If you are working in a directory other than
+	  <filename>${PORTSDIR}/security/vuxml</filename> set the
+	  <filename>VUXMLDIR</filename> environment variable to the
+	  directory where <filename>vuln.xml</filename> is
+	  located.</para>
+      </note>
+
+      <para>First, check whether there already is an entry for this
+	vulnerability.  If there were such an entry, it would match
+	the previous version of the package,
+	<literal>0.65_6</literal>:</para>
 
-	<screen>&prompt.user; <userinput>packaudit</userinput>
+      <screen>&prompt.user; <userinput>packaudit</userinput>
 &prompt.user; <userinput>portaudit clamav-0.65_6</userinput></screen>
 
-	<para>If there is none found, you have the green light to add
-	  a new entry for this vulnerability.</para>
+      <para>If there is none found, you have the green light to add a
+	new entry for this vulnerability.</para>
 
-	<screen>&prompt.user; <userinput>cd ${PORTSDIR}/security/vuxml</userinput>
+      <screen>&prompt.user; <userinput>cd ${PORTSDIR}/security/vuxml</userinput>
 &prompt.user; <userinput>make newentry</userinput></screen>
 
-	<para>When you are done verify its syntax and
-	  formatting.</para>
+      <para>When you are done verify its syntax and formatting.</para>
 
-	<screen>&prompt.user; <userinput>make validate</userinput></screen>
+      <screen>&prompt.user; <userinput>make validate</userinput></screen>
 
-	<note>
-	  <para>You will need at least one of the following packages
-	    installed:
-	    <package role="port">textproc/libxml2</package>,
-	    <package role="port">textproc/jade</package>.</para>
-	</note>
+      <note>
+	<para>You will need at least one of the following packages
+	  installed: <package role="port">textproc/libxml2</package>,
+	  <package role="port">textproc/jade</package>.</para>
+      </note>
 
-	<para>Now rebuild the <command>portaudit</command> database
-	  from the VuXML file:</para>
+      <para>Now rebuild the <command>portaudit</command> database from
+	the VuXML file:</para>
 
-	<screen>&prompt.user; <userinput>packaudit</userinput></screen>
+      <screen>&prompt.user; <userinput>packaudit</userinput></screen>
 
-	<para>To verify that the <literal>&lt;affected&gt;</literal>
-	  section of your entry will match correct package(s), issue
-	  the following command:</para>
+      <para>To verify that the <literal>&lt;affected&gt;</literal>
+	section of your entry will match correct package(s), issue the
+	following command:</para>
 
-	<screen>&prompt.user; <userinput>portaudit -f /usr/ports/INDEX -r uuid</userinput></screen>
+      <screen>&prompt.user; <userinput>portaudit -f /usr/ports/INDEX -r uuid</userinput></screen>
 
-	<note>
-	  <para>Please refer to &man.portaudit.1; for better
-	    understanding of the command syntax.</para>
-	</note>
+      <note>
+	<para>Please refer to &man.portaudit.1; for better
+	  understanding of the command syntax.</para>
+      </note>
 
-	<para>Make sure that your entry produces no spurious matches
-	  in the output.</para>
+      <para>Make sure that your entry produces no spurious matches in
+	the output.</para>
 
-	<para>Now check whether the right package versions are matched
-	  by your entry:</para>
+      <para>Now check whether the right package versions are matched
+	by your entry:</para>
 
-	<screen>&prompt.user; <userinput>portaudit clamav-0.65_6 clamav-0.65_7</userinput>
+      <screen>&prompt.user; <userinput>portaudit clamav-0.65_6 clamav-0.65_7</userinput>
 Affected package: clamav-0.65_6 (matched by clamav&lt;0.65_7)
 Type of problem: clamav remote denial-of-service.
 Reference: &lt;http://www.freebsd.org/ports/portaudit/74a9541d-5d6c-11d8-80e3-0020ed76ef5a.html&gt;
 
 1 problem(s) found.</screen>
 
-	<para>The former version should match while the latter one
-	  should not.</para>
+      <para>The former version should match while the latter one
+	should not.</para>
 
-	<para>Finally, verify whether the web page generated from the
-	  VuXML database looks like expected:</para>
+      <para>Finally, verify whether the web page generated from the
+	VuXML database looks like expected:</para>
 
-	<screen>&prompt.user; <userinput>mkdir -p ~/public_html/portaudit</userinput>
+      <screen>&prompt.user; <userinput>mkdir -p ~/public_html/portaudit</userinput>
 &prompt.user; <userinput>packaudit</userinput>
 &prompt.user; <userinput>lynx ~/public_html/portaudit/74a9541d-5d6c-11d8-80e3-0020ed76ef5a.html</userinput></screen>
-      </sect2>
-    </sect1>
-  </chapter>
+    </sect2>
+  </sect1>
+</chapter>
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201402160224.s1G2Ocar047740>