The tricky part here is that most recent packages use the PCRE regular expression library, because of its open BSD license, but the "bad" pattern hardcoded into the MapServer source is for libregex, which is GPL based, and that expression won't work with the PCRE engine.

My thoughts were when the idea of a "MapServer config file" coming, was that phew, then users can just point to their valid mapfiles there with simple paths or even wildcard paths or directories, and we can completely remove that bad pattern stuff from the source code.

So I assumed that the new config file would save us. In fact the config file is just another place to put the bad pattern, which, honestly most MapServer users will never understand nor have the time to understand.

I am wondering, when we re-look at the bad pattern stuff, if we can think of a way that the new config file can replace the hardcoding inside the MapServer source.

I hope it's ok to wonder here out loud, ha.

-jeff







On 2022-02-10 3:05 p.m., Tamas Szekeres wrote:
Steve,

I think we cannot avoid to be platform dependent in this regard. A single slash at the beginning on Windows systems should not be accepted, because it can specify a relative path, however a double back slash at the beginning is accepted (absolute path of a network share). Currently the single slash at the beginning is accepted in all platforms. Applying environment variables might not be a trivial task in all run time environments, so I think the default behavior should work in that way which can do the right thing in most use cases.

Best regards,

Tamas


Steve Lime <[email protected] <mailto:[email protected]>> ezt írta (időpont: 2022. febr. 10., Cs, 15:48):

    The idea was to limit things to local paths with no back references
    by default. We're not distinguishing between OSes in setting that
    pattern. It's possible it's a bit overzealous so we could tweak the
    default if that makes sense across operating systems. It can be
    overridden by environment variable (or within the config file) and
    could be turned off completely with an expression that will never match.

    On Thu, Feb 10, 2022 at 4:34 AM Tamas Szekeres <[email protected]
    <mailto:[email protected]>> wrote:

        Hi Developers,

        I noticed that the double back slashes are excluded from the
        accepted mapfile pattern in one of the commits not too long ago
        according to security vulnerability reasons. The bad patten
        regex is now looking like:

        const char *ms_map_bad_pattern_default =
        "[/\\]{2}|[/\\]?\\.+[/\\]|,";

        Do we have a specific reason why we don't accept the double back
        slashes at the beginning of the mapfile path? This normally
        refers to a network share which is considered to be an absolute
        path, and our use cases are working like that extensively. I
        guess we wanted to exclude the relative paths basically, but it
        seems not to be that case.
        I'm also wondering if the double forward slashes at the
        beginning makes much sense to exclude, since I think that is
        treated as a single forward slash in the unix like systems which
        is normally accepted.

        Thanks,

        Tamas

        _______________________________________________
        MapServer-dev mailing list
        [email protected] <mailto:[email protected]>
        https://lists.osgeo.org/mailman/listinfo/mapserver-dev
        <https://lists.osgeo.org/mailman/listinfo/mapserver-dev>


_______________________________________________
MapServer-dev mailing list
[email protected]
https://lists.osgeo.org/mailman/listinfo/mapserver-dev


--
Jeff McKenna
GatewayGeo: Developers of MS4W, MapServer Consulting and Training
co-founder of FOSS4G
http://gatewaygeo.com/
_______________________________________________
MapServer-dev mailing list
[email protected]
https://lists.osgeo.org/mailman/listinfo/mapserver-dev

Reply via email to