Limited security support for Go/Rust? Re ssh3

2024-01-14 Thread Simon Josefsson
Stephan Verbücheln  writes:

> On Sat, 30 Dec 2023 12:47:48 + Colin Watson 
> wrote:
>> I also feel that something security-critical like this that's
>> labelled by upstream as "still experimental" probably shouldn't
>> be in a Debian release.
>
> It is written in Go. The problem of Go library support in Debian should
> also be considered for a security-critical tool like this.
>
> https://www.debian.org/releases/bookworm/amd64/release-notes/ch-information.en.html#golang-static-linking

Interesting -- what is the current thinking about this problem?

The more I think about it, I think it seems unfair to categorize this as
a Go/Rust problem.

As an analogy, consider the ./configure scripts that is generated by
autoconf during build of many packages.  The script typically generate
code that is put into config.h that is used (statically) during
compilation of the binaries that are shipped by Debian.  Consider
further that these configure scripts would put security buggy into
config.h, coming from autoconf internally or some wildly used M4 macros.
How would the security team handle that situation?  Perhaps by patching
autoconf to fix the problem and rebuild all the packages that are
affected by that bug, and release them as a (potentially large) security
update.  This is a similar situation to the Go/Rust problem that the
link above describes.

Yes I know, historically config.h has been quite small, so the problem
hasn't been that significant, but have a look at a config.h from a
couple of large project today.  Compare an earlier large-scale-affecting
build-tool bug in automake --
https://lists.gnu.org/archive/html/automake/2012-07/msg00022.html --
which happened to have mild consequences because 'make distcheck' is
rarely run by most users or even during package builds, and the
generated code didn't end up in the installed binaries.  But it could
happen in a 'make all' or a 'make check' target too, or affect code that
actually influence the installed binaries.

You could also compare how the source-level reuse-library gnulib is used
by many essential packages (coreutils, grep, sed, awk, tar, etc), with
large code-reuse that influences the installed binaries.  A security
sensitive bug in gnulib would require rebuild of many packages.

My suggestion is that we relax or remove the Go/Rust statement in future
release notes.

/Simon


signature.asc
Description: PGP signature


Bug#1060793: ITP: node-luxon -- Wrapper for JavaScript dates and times

2024-01-14 Thread Jérémy Lal
Package: wnpp
Severity: wishlist
Owner: Jérémy Lal 
X-Debbugs-Cc: debian-devel@lists.debian.org, Debian Javascript Maintainers 


* Package name: node-luxon
  Version : 3.4.4
  Upstream Contact: https://github.com/moment/luxon/issues
* URL : https://moment.github.io/luxon/
* License : Expat
  Programming Lang: JavaScript
  Description : Wrapper for JavaScript dates and times

 Luxon provides a set of powerful, modern, and friendly wrappers for
 DateTimes, Durations and Intervals. The API is immutable, chainable,
 and unambiguous. It uses native time zones and internationalization.

Luxon is often used in webapps.
It will be maintained within Javascript team.
In particular I need to upload to Debian to use it in the front-end of AWX 
package.


Re: Limited security support for Go/Rust? Re ssh3

2024-01-14 Thread Nilesh Patra
On Sun, Jan 14, 2024 at 10:47:18AM +0100, Simon Josefsson wrote:
> Stephan Verbücheln  writes:
> 
> > On Sat, 30 Dec 2023 12:47:48 + Colin Watson 
> > wrote:
> >> I also feel that something security-critical like this that's
> >> labelled by upstream as "still experimental" probably shouldn't
> >> be in a Debian release.
> >
> > It is written in Go. The problem of Go library support in Debian should
> > also be considered for a security-critical tool like this.
> >
> > https://www.debian.org/releases/bookworm/amd64/release-notes/ch-information.en.html#golang-static-linking
> 
> Interesting -- what is the current thinking about this problem?
> 
> The more I think about it, I think it seems unfair to categorize this as
> a Go/Rust problem.

+1.

Container packages such as docker and podman are also golang packages and also
security critical.

> ...
> My suggestion is that we relax or remove the Go/Rust statement in future
> release notes.

Or we could as well look at improving the infrastructure to deal with them.

Best,
Nilesh


signature.asc
Description: PGP signature


Re: Limited security support for Go/Rust? Re ssh3

2024-01-14 Thread Stephan Verbücheln
On Sun, 2024-01-14 at 10:47 +0100, Simon Josefsson wrote:
> The more I think about it, I think it seems unfair to categorize this
> as a Go/Rust problem.
The point is that it should be possible all packages in Debian without
dependencies which are outside of Debian.
The same problem exists with all programs that depend on external
dependency managers which manage a large number of small libraries
which are changing all the time. These dependencies are a moving target
hard to include into Debian stable. This is not only making updates but
also reproducible builds harder.
More examples for this are Node NPM, Python PIP, Ruby Gems etc.

Go and Rust are different than NPM and Python for two reasons:
- Go and Rust are used for more low-level programs where stability
matters even more.
- Go and Rust use static linking.

> Interesting -- what is the current thinking about this problem?
I think the current plan is to automatically update Debian packages of
Go/Rust libraries in a similar way as it is done for Python. However,
the static linking makes this different from Python, as these packages
are build dependencies rather than runtime dependencies. So all reverse
dependencies have to be rebuild in some way.
I do not know what the status/progress of this project is.

Regards
Stephan


signature.asc
Description: This is a digitally signed message part


Re: Limited security support for Go/Rust? Re ssh3

2024-01-14 Thread Bastian Blank
Hi Simon

On Sun, Jan 14, 2024 at 10:47:18AM +0100, Simon Josefsson wrote:
> As an analogy, consider the ./configure scripts that is generated by
> autoconf during build of many packages.  The script typically generate
> code that is put into config.h that is used (statically) during
> compilation of the binaries that are shipped by Debian.

Could you show an example, where there is actually code injcted in this
stage?  And then, this is vendoring, not static linking.

> You could also compare how the source-level reuse-library gnulib is used
> by many essential packages (coreutils, grep, sed, awk, tar, etc), with
> large code-reuse that influences the installed binaries.  A security
> sensitive bug in gnulib would require rebuild of many packages.

That is not static linking, this is vendoring.  And can you show that
GNU utils don't fix security bugs on this vendored lib?

> My suggestion is that we relax or remove the Go/Rust statement in future
> release notes.

No.  You described completely different circumstances.

Or do you have a practical solution for the static linking problem, not
the vendoring problem that you actually compared it against?

Bastian

-- 
A father doesn't destroy his children.
-- Lt. Carolyn Palamas, "Who Mourns for Adonais?",
   stardate 3468.1.



Re: Bug#1059618: ITP: ssh3 -- faster and rich secure shell using HTTP/3

2024-01-14 Thread Bastian Blank
On Fri, Dec 29, 2023 at 11:30:14AM +0100, Simon Josefsson wrote:
> * Package name: ssh3

This package name is clearly not acceptable.  SSH is a well known name
and this project is completely unrelated to it.

So this is an accademic project.  I would question that it actually
solves the same problem as SSH does.

The paper might also be missleading.  They compare session setup time,
but don't even describe the used parameters.  They don't describe a way
to use real authentication, instead they just refer to HTTP, which does
not specify anything equivalent to what SSH uses by default.

> - Significantly faster session establishment

Questionable.

> - New HTTP authentication methods such as OAuth 2.0 and OpenID Connect
>   in addition to classical SSH authentication

In addition?  I don't see any way to use authentication similar to SSH
in this.  But maybe just show where I can use sk-ssh-ed25...@openssh.com
authentication, which is a modern one, with this.

> - Robustness to port scanning attacks: your SSH3 server can be made
>   invisible to other Internet users

You still have a HTTP listener that can be seen.

Bastian

-- 
It would be illogical to assume that all conditions remain stable.
-- Spock, "The Enterprise Incident", stardate 5027.3



Re: Bug#1059618: ITP: ssh3 -- faster and rich secure shell using HTTP/3

2024-01-14 Thread Simon Josefsson
Bastian Blank  writes:

> On Fri, Dec 29, 2023 at 11:30:14AM +0100, Simon Josefsson wrote:
>> * Package name: ssh3
>
> This package name is clearly not acceptable.  SSH is a well known name
> and this project is completely unrelated to it.

Agreed.  Packagers have settled on using 'soh' for the name, see:

https://github.com/francoismichel/ssh3/issues/79
https://github.com/francoismichel/ssh3/pull/96

Once 0.1.5 is released, I will try to update the package to use the new
name.  It doesn't seem to collide with anything in Debian, as far as I
can tell.  It would be nice to have confirmation other distributions are
going to use the same name, but I think we have that in the discussion
above.  Thoughts?

Hyperbole in package descriptions are common, the current text is from
the upstream authors and I think it makes sense to copy that in the
package description.  If you can think of some improvement, consider
submitting a patch: https://salsa.debian.org/go-team/packages/ssh3

/Simon


signature.asc
Description: PGP signature


Re: Limited security support for Go/Rust? Re ssh3

2024-01-14 Thread Simon Josefsson
Bastian Blank  writes:

> Hi Simon
>
> On Sun, Jan 14, 2024 at 10:47:18AM +0100, Simon Josefsson wrote:
>> As an analogy, consider the ./configure scripts that is generated by
>> autoconf during build of many packages.  The script typically generate
>> code that is put into config.h that is used (statically) during
>> compilation of the binaries that are shipped by Debian.
>
> Could you show an example, where there is actually code injcted in this
> stage?  And then, this is vendoring, not static linking.
>
>> You could also compare how the source-level reuse-library gnulib is used
>> by many essential packages (coreutils, grep, sed, awk, tar, etc), with
>> large code-reuse that influences the installed binaries.  A security
>> sensitive bug in gnulib would require rebuild of many packages.
>
> That is not static linking, this is vendoring.  And can you show that
> GNU utils don't fix security bugs on this vendored lib?
>
>> My suggestion is that we relax or remove the Go/Rust statement in future
>> release notes.
>
> No.  You described completely different circumstances.
>
> Or do you have a practical solution for the static linking problem, not
> the vendoring problem that you actually compared it against?

Right, these are slightly different technical problems, but as far as
the brief discussion in the release notes --
https://www.debian.org/releases/bookworm/amd64/release-notes/ch-information.en.html#golang-static-linking
-- I think the relevant aspect is identical: package X in Debian
contains an embedded copy of code whose corresponding source code is in
package Y in Debian, and fixing a security problem in Y will require
rebuilding X and the entire dependency chain between X and Y that carry
the code that ends up in X.

Isn't that what the text refers to?  Vendoring and static linking are
two examples of the same problem that the security team may encounter.
The problem with dependencies are more obvious for Go/Rust code but I
think we always have had that problem anyway.

As for solutions, isn't the solution to both vendoring or statical
linking the obvious one?  You will have to rebuild all packages that
contain the security vulnerability.

Maybe I'm missing how these two problems result in different problems
for the security team?

/Simon


signature.asc
Description: PGP signature


Bug#1060805: ITP: pusimp -- prevent user-site imports

2024-01-14 Thread Francesco Ballarin
Package: wnpp
Severity: wishlist
Owner: Francesco Ballarin 
X-Debbugs-Cc: debian-devel@lists.debian.org, francesco.balla...@unicatt.it

* Package name: pusimp
  Version : 0.1.0
  Upstream Contact: Francesco Ballarin 
* URL : https://github.com/python-pusimp/pusimp
* License : MIT
  Programming Lang: Python
  Description : prevent user-site imports

pusimp is a python library to prevent user-site imports of specific
dependencies of a package. The typical scenario for using pusimp is
in combination with a system manager (e.g., apt for Debian), to prevent
dependencies from being loaded from user-site instead of the location
provided by the system manager.

We designed pusimp with in mind the specific use case of the FEniCS
project. It happens often that users post messages at the FEniCS discourse
forum https://fenicsproject.discourse.group/ asking why their ubuntu/debian
installation is not working correctly, and several times this is due to the
presence of user-made installation attempts in user-site locations.
We thus initially plan to use pusimp in the python3-dolfin and
python3-dolfinx packages, but the logic behind pusimp is purposely
simple and general.

The package will be maintained at 
https://salsa.debian.org/python-team/packages/pusimp
in collaboration with my sponsor Drew Parsons and the Debian Python Team



Re: Limited security support for Go/Rust? Re ssh3

2024-01-14 Thread Robert Edmonds
Simon Josefsson wrote:
> Isn't that what the text refers to?  Vendoring and static linking are
> two examples of the same problem that the security team may encounter.
> The problem with dependencies are more obvious for Go/Rust code but I
> think we always have had that problem anyway.

Another example of this class of problem is header only C++ libraries.

-- 
Robert Edmonds
edmo...@debian.org



Bug#1060810: ITP: golang-github-sassoftware-go-rpmutils -- Golang implementation of parsing RPM packages

2024-01-14 Thread Simon Josefsson
Package: wnpp
Severity: wishlist
Owner: Simon Josefsson 

* Package name: golang-github-sassoftware-go-rpmutils
  Version : 0.2.0-1
  Upstream Author : SAS Institute, Inc.
* URL : https://github.com/sassoftware/go-rpmutils
* License : Apache-2.0
  Programming Lang: Go
  Description : Golang implementation of parsing RPM packages

 go-rpmutils is a library written in go (http://golang.org) for parsing
 and extracting content from RPMs (http://www.rpm.org).
 .
 go-rpmutils provides a few interfaces for handling RPM packages. There is
 a highlevel Rpm struct that provides access to the RPM header and CPIO
 (https://en.wikipedia.org/wiki/Cpio) payload. The CPIO payload can be
 extracted to a filesystem location via the ExpandPayload function or
 through a Reader interface, similar to the tar implementation
 (https://golang.org/pkg/archive/tar/) in the go standard library.

I hope to maintain this package as part of Debian Go Packaging Team:

https://salsa.debian.org/go-team/packages/golang-github-sassoftware-go-rpmutils

/Simon


signature.asc
Description: PGP signature


Bug#1060813: ITP: golang-github-qur-ar -- Golang ar archive file library

2024-01-14 Thread Simon Josefsson
Package: wnpp
Severity: wishlist
Owner: Simon Josefsson 

* Package name: golang-github-qur-ar
  Version : 0.0~git20130629.282534b-1
  Upstream Author : Blake Smith, Julian Phillips
* URL : https://github.com/qur/ar
* License : Expat
  Programming Lang: Go
  Description : Golang ar archive file library

 Golang ar (archive) file reader
 .
 This is a simple library for reading and writing ar
 (http://en.wikipedia.org/wiki/Ar_(Unix)) files in common format. It is
 influenced heavily in style and interface from the golang tar
 (http://golang.org/pkg/archive/tar/) package.

I hope to maintain this package as part of Debian Go Packaging Team:

https://salsa.debian.org/go-team/packages/golang-github-qur-ar

/Simon


signature.asc
Description: PGP signature


Bug#1060815: ITP: relic -- digitally sign Linux/Java/Windows packages

2024-01-14 Thread Simon Josefsson
Package: wnpp
Severity: wishlist
Owner: Simon Josefsson 

* Package name: relic
  Version : 7.6.1-1
  Upstream Author : SAS Institute, Inc.
* URL : https://github.com/sassoftware/relic
* License : Apache-2.0
  Programming Lang: Go
  Description : digitally sign Linux/Java/Windows packages

 relic is a multi-tool and server for package signing and working with
 hardware security modules (HSMs).
 .
 Package types
 .
  * RPM - RedHat packages
  * DEB - Debian packages
  * JAR - Java archives
  * EXE (PE/COFF) - Windows executable
  * MSI - Windows installer
  * appx, appxbundle - Windows universal application
  * CAB - Windows cabinet file
  * CAT - Windows security catalog
  * XAP - Silverlight and legacy Windows Phone applications
  * PS1, PS1XML, MOF, etc. - Microsoft Powershell scripts and modules
  * manifest, application - Microsoft ClickOnce manifest
  * VSIX - Visual Studio extension
  * Mach-O - macOS/iOS signed executables
  * DMG, PKG - macOS disk images / installer packages
  * APK - Android package
  * PGP - inline, detached or cleartext signature of data
 .
 Token types
 .
 relic can work with several types of token:
 .
  * pkcs11 - Industry standard PKCS#11 HSM interface using shared object
files
  * Cloud services - AWS, Azure and Google Cloud managed keys
  * scdaemon - The GnuPG scdaemon service can enable access to OpenPGP
cards (such as Yubikey NEO)
  * file - Private keys stored in a password-protected file
 .
 Features
 .
 Relic is primarily meant to operate as a signing server, allowing
 clients to authenticate with a TLS certificate and sign packages
 remotely. It can also be used as a standalone signing tool.
 .
 Other features include:
 .
  * Generating and importing keys in the token
  * Importing certificate chains from a PKCS#12 file
  * Creating X509 certificate signing requests (CSR) and self-signed
certificates
  * Limited X509 CA support -- signing CSRs and cross-signing certificates
  * Creating simple PGP public keys
  * RSA and ECDSA supported for all signature types
  * Verify signatures, certificate chains and timestamps on all supported
package types
  * Sending audit logs to an AMQP broker, with an optional sealing
signature
  * Save token PINs in the system keyring
 .
 Linux, Windows and MacOS are supported. Other platforms probably work as
 well.
 .
 relic is tested using libsofthsm2 and Gemalto SafeNet Network HSM (Luna
 SA).

I hope to maintain this package as part of Debian Go Packaging Team:

https://salsa.debian.org/go-team/packages/relic

/Simon


signature.asc
Description: PGP signature


Bug#1060816: ITP: golang-github-shibumi-go-pathspec -- gitignore-style pathspec pattern matching in Go

2024-01-14 Thread Simon Josefsson
Package: wnpp
Severity: wishlist
Owner: Simon Josefsson 

* Package name: golang-github-shibumi-go-pathspec
  Version : 1.3.0-1
  Upstream Author : Sander van Harmelen, Christian Rebischke
* URL : https://github.com/shibumi/go-pathspec
* License : Apache-2.0
  Programming Lang: Go
  Description : gitignore-style pathspec pattern matching in Go

 go-pathspec implements gitignore-style pattern matching for paths.

I hope to maintain this package as part of Debian Go Packaging Team:

https://salsa.debian.org/go-team/packages/golang-github-shibumi-go-pathspec/

/Simon


signature.asc
Description: PGP signature


Bug#1060817: ITP: golang-github-spiffe-go-spiffe -- Golang library for SPIFFE support

2024-01-14 Thread Simon Josefsson
Package: wnpp
Severity: wishlist
Owner: Simon Josefsson 

* Package name: golang-github-spiffe-go-spiffe
  Version : 2.1.6-1
  Upstream Author : Agustín Martínez Fayó, Andrew Harding, et al
* URL : https://github.com/spiffe/go-spiffe
* License : Apache-2.0
  Programming Lang: Go
  Description : Golang library for SPIFFE support

 This library is a convenient Go library for working with SPIFFE
 (https://spiffe.io/).
 .
 It leverages the SPIFFE Workload API
 (https://github.com/spiffe/spiffe/blob/main/standards/SPIFFE_Workload_API.md),
 providing high level functionality that includes:
 .
  * Establishing mutually authenticated TLS (**mTLS**) between workloads
powered by SPIFFE.
  * Obtaining and validating X509-SVIDs
(https://github.com/spiffe/spiffe/blob/main/standards/X509-SVID.md) and
JWT-SVIDs (https://github.com/spiffe/spiffe/blob/main/standards/JWT-
SVID.md).
  * Federating trust between trust domains using SPIFFE bundles

(https://github.com/spiffe/spiffe/blob/main/standards/SPIFFE_Trust_Domain_and_Bundle.md#3-
spiffe-bundles).
  * Bundle management.

I hope to maintain this package as part of Debian Go Packaging Team:

https://salsa.debian.org/go-team/packages/golang-github-spiffe-go-spiffe/

/Simon


signature.asc
Description: PGP signature


Bug#1060818: ITP: in-toto-golang -- framework for software supply chain integrity

2024-01-14 Thread Simon Josefsson
Package: wnpp
Severity: wishlist
Owner: Simon Josefsson 

* Package name: in-toto-golang
  Version : 0.9.0-1
  Upstream Author : Aditya Sirish, Christian Rebischke, Lukas Pühringer, et al
* URL : https://github.com/in-toto/in-toto-golang
* License : Apache-2.0
  Programming Lang: Go
  Description : framework for software supply chain integrity

 Go implementation of in-toto

I hope to maintain this package as part of Debian Go Packaging Team:

https://salsa.debian.org/go-team/packages/in-toto-golang/

/Simon



signature.asc
Description: PGP signature


Bug#1060819: ITP: golang-github-zeebo-errs -- errs is a package for making errors friendly and easy

2024-01-14 Thread Simon Josefsson
Package: wnpp
Severity: wishlist
Owner: Simon Josefsson 

* Package name: golang-github-zeebo-errs
  Version : 1.3.0-1
  Upstream Author : Jeff Wendling
* URL : https://github.com/zeebo/errs
* License : Expat
  Programming Lang: Go
  Description : errs is a Go library for making errors friendly and easy

 errs is a package for making errors friendly and easy.  Errors come
 with a stack trace that is only printed when a "+" character is used in
 the format string. This should retain the benefits of being able to
 diagnose where and why errors happen, without all of the noise of
 printing a stack trace in every situation.

I hope to maintain this package as part of Debian Go Packaging Team:

https://salsa.debian.org/go-team/packages/golang-github-zeebo-errs/

/Simon


signature.asc
Description: PGP signature


Bug#1060820: ITP: golang-github-cyberphone-json-canonicalization -- JSON Canonicalization Scheme (JCS) (Go library)

2024-01-14 Thread Simon Josefsson
Package: wnpp
Severity: wishlist
Owner: Simon Josefsson 

* Package name: golang-github-cyberphone-json-canonicalization
  Version : 0.0~git20220623.57a0ce2-1
  Upstream Author : Anders Rundgren
* URL : https://github.com/cyberphone/json-canonicalization
* License : Apache-2.0
  Programming Lang: Go
  Description : JSON Canonicalization Scheme (JCS) (Go library)

 Cryptographic operations like hashing and signing depend on that the
 target data does not change during serialization, transport, or parsing.
 By applying the rules defined by JCS (JSON Canonicalization Scheme),
 data provided in the JSON [RFC8259
 (https://tools.ietf.org/html/rfc8259)] format can be exchanged "as is",
 while still being subject to secure cryptographic operations. JCS
 achieves this by building on the serialization formats for JSON
 primitives as defined by ECMAScript [ES (https://ecma-
 international.org/ecma-262/)], constraining JSON data to the I-JSON
 [RFC7493 (https://tools.ietf.org/html//rfc7493)] subset, and through a
 platform independent property sorting scheme.
 .
 Public RFC: (https://tools.ietf.org/html/rfc8785)
 .
 The JSON Canonicalization Scheme concept in a nutshell:
 .
  * Serialization of primitive JSON data types using methods compatible
with ECMAScript's JSON.stringify()
  * Lexicographic sorting of JSON Object properties in a *recursive*
process
  * JSON Array data is also subject to canonicalization, *but element
order remains untouched*

I hope to maintain this package as part of Debian Go Packaging Team:

https://salsa.debian.org/go-team/packages/golang-github-cyberphone-json-canonicalization

/Simon


signature.asc
Description: PGP signature


Bug#1060830: ITP: gpu-burn -- Multi-GPU CUDA stress test

2024-01-14 Thread Gürkan Myczko

Package: wnpp
Severity: wishlist
Owner: Gürkan Myczko 
X-Debbugs-Cc: debian-devel@lists.debian.org

* Package name: gpu-burn
  Version : 0+git20240115+ds
  Upstream Authors: Ville Timonen
  URL : https://github.com/wilicc/gpu-burn
* License : BSD-2-clause
  Description : Multi-GPU CUDA stress test
 This allows you to run a stress test on your GPUs. Memory usage can
 be controlled by absolute number or percentage. Also allows to run
 on specific GPU, useful if you have mixed multi GPU system.