Strange result when using range filter with "out of range" values - possible bug?

We have a strange outcome when using a range request with a number higher than the the allowed value (by mapping).

Example:

Mapping:

"duration": {
         "type": "integer"
   }

Now let's say all my documents have a duration lower than 1000.

If I know use a query like this

{
	"query": {
		"bool": {
			 "must": [
					{ "range": {
						"duration": {
							"gte": 900
						}
					}
			}]
		}
	}
}

Everything's fine and I'll receive all document with duration >= 900.

Now if I update the query like so

{
	"query": {
		"bool": {
			 "must": [
					{ "range": {
						"duration": {
							"gte": 90000000000 
						}
					}
			}]
		}
	}
}

The search result now contains ALL documents though it shouldn't match any.

The duration 90000000000 is now an "allowed" integer value (as defined per mapping). However I would expect to receive an empty search result.

Can anyone explain why this happens?

Looks like a bug to me.