[mapserver-dev] Question about the bad mapfile pattern (vulnerability) check
Jeff McKenna
jmckenna at gatewaygeomatics.com
Thu Feb 10 12:09:15 PST 2022
For example (me thinking out of the box), could the MapServer config
file contain a section where users can specify paths or characters to
disallow (not a regular expression), and then MapServer would convert
that to a regular expression (in either PCRE or libregex syntax) and
apply it at run-time.
-jeff
On 2022-02-10 4:00 p.m., Jeff McKenna wrote:
> 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 <sdlime at gmail.com <mailto:sdlime at gmail.com>> 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 <szekerest at gmail.com
>> <mailto:szekerest at gmail.com>> 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
>> MapServer-dev at lists.osgeo.org
>> <mailto:MapServer-dev at lists.osgeo.org>
>> https://lists.osgeo.org/mailman/listinfo/mapserver-dev
>> <https://lists.osgeo.org/mailman/listinfo/mapserver-dev>
>>
>>
>> _______________________________________________
>> MapServer-dev mailing list
>> MapServer-dev at lists.osgeo.org
>> 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/
More information about the MapServer-dev
mailing list