Yes it is by omission in [conv.ptr] and the applicable paragraph is in [expr.reinterpret.cast],
7 An object pointer can be explicitly converted to an object pointer of
  a different type. When a prvalue v  of  type  "pointer  to  T1"  is 
  converted  to  the  type  "pointer  to  cv  T2",  the  result  is 
  static_cast<cv T2*>(static_cast<cv  void*>(v)) if both T1 and T2 are
  standard-layout types (3.9) and the alignment requirements of T2 are
  no stricter than those of T1, or if either type is void.  Converting a
  prvalue of type "pointer to T1" to the type "pointer to T2" (where T1
  and T2 are object types and where the alignment requirements of T2 are
  no stricter than those of T1) and back to its original type yields the
  original pointer value. The result of any other such pointer
  conversion is unspecified.
You have to use reinterpret_cast<int*>(...).
EDIT. There is a concern in the comments that I am making more visible in this edit, that this is not a language-lawyer question but that the intention is to use the pointer. I am not sure how the concern came about, as it is rather obvious that one can simply C-cast without asking, but if there is doubt - the pointer cast to int* violates strict aliasing rules. 
That is, an undefined behaviour may arise from the fact that you break the compiler's assumption that pointers of different types could never point to the same memory location.